发货过账(vl02n)bapi 及冲销

*&---------------------------------------------------------------------*
*& Report YMM_TEST_FOR_FHGZ *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT ymm_test_for_fhgz .
"库位我们采用UPDATE或者BDC先修改

DATA:tab_mess TYPE TABLE OF bdcmsgcoll WITH HEADER LINE.
REFRESH tab_mess.CLEAR tab_mess.
DATA: bapi_z03cdogi_delivery LIKE bapiobdlvhdrcon-deliv_numb ,
bapi_z03cdogi_header_data LIKE bapiobdlvhdrcon OCCURS 0 WITH HEADER LINE ,
bapi_z03cdogi_header_control LIKE bapiobdlvhdrctrlcon OCCURS 0 WITH HEADER LINE,
bapi_z03cdogi_item_data LIKE bapiobdlvitemcon OCCURS 0 WITH HEADER LINE,
bapi_z03cdogi_item_control LIKE bapiobdlvitemctrlcon OCCURS 0 WITH HEADER LINE ,
bapi_z03cdogi_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE .

*---------------------
DATA: i_vbkok LIKE vbkok OCCURS 0 WITH HEADER LINE,
i_vbpok_tab LIKE vbpok OCCURS 0 WITH HEADER LINE,
i_prott LIKE prott OCCURS 0 WITH HEADER LINE.
i_vbkok-vbeln_vl = '0080116891'. "<- Delivery number
i_vbkok-wabuc = 'X'. " <- Automatic PGI
i_vbkok-wadat_ist = '20090920'.
APPEND i_vbkok.
*
* I_VBPOK_TAB-VBELN_VL = '0080116895'. "<- Delivery number
* I_VBPOK_TAB-POSNR_VL = '10'.
* I_VBPOK_TAB-VBELN = P_VBELN .
* I_VBPOK_TAB-POSNN = LIPS-POSNR.
* I_VBPOK_TAB-MATNR = LIPS-MATNR. "Material Number
* I_VBPOK_TAB-WERKS = '3000'. "LIPS-WERKS.
* I_VBPOK_TAB-LGORT = 'ATPR'. "'FU01'."'ATPR'.
* GV_14 = LIPS-LFIMG .
* CONDENSE GV_14.
* I_VBPOK_TAB-PIKMG = GV_14 .

* APPEND I_VBPOK_TAB.

CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
vbkok_wa = i_vbkok
commit = 'X'
delivery = '0080116891'
update_picking = 'X'
TABLES
vbpok_tab = i_vbpok_tab
prot = i_prott
EXCEPTIONS
error_message = 1
OTHERS = 2.
BREAK-POINT.

*-----------------


CLEAR: bapi_z03cdogi_delivery , bapi_z03cdogi_header_data , bapi_z03cdogi_header_control , bapi_z03cdogi_item_data ,bapi_z03cdogi_item_control , bapi_z03cdogi_return .
REFRESH: bapi_z03cdogi_header_data , bapi_z03cdogi_header_control , bapi_z03cdogi_item_data , bapi_z03cdogi_item_control , bapi_z03cdogi_return .

bapi_z03cdogi_delivery = '0080116891' .

bapi_z03cdogi_header_data-deliv_numb = '0080116891'.
APPEND bapi_z03cdogi_header_data.

bapi_z03cdogi_header_control-deliv_numb = '0080116891'.
bapi_z03cdogi_header_control-post_gi_flg = 'X'.
APPEND bapi_z03cdogi_header_control.

bapi_z03cdogi_item_data-deliv_numb = '0080116895'.
bapi_z03cdogi_item_data-deliv_item = '00010'.
bapi_z03cdogi_item_data-HIERARITEM = '90001' .
bapi_z03cdogi_item_data-dlv_qty = 40.
bapi_z03cdogi_item_data-sales_unit = 'Z37'.
bapi_z03cdogi_item_data-fact_unit_nom = 1. " 此处应从MARM取转换关系
bapi_z03cdogi_item_data-fact_unit_denom = 1." 此处应从MARM取转换关系
* BAPI_Z03CDOGI_ITEM_DATA-BATCH = PGI_TAB-UMCHA.
*PGI_TAB-CHARG
bapi_z03cdogi_item_data-batch = '0000000054'.

APPEND bapi_z03cdogi_item_data.

bapi_z03cdogi_item_data-deliv_numb = '0080116895'.
bapi_z03cdogi_item_data-deliv_item = '00010'.
bapi_z03cdogi_item_data-HIERARITEM = '90002' .
bapi_z03cdogi_item_data-dlv_qty = 60.
bapi_z03cdogi_item_data-sales_unit = 'Z37'.
bapi_z03cdogi_item_data-fact_unit_nom = 1. " 此处应从MARM取转换关系
bapi_z03cdogi_item_data-fact_unit_denom = 1." 此处应从MARM取转换关系
* BAPI_Z03CDOGI_ITEM_DATA-BATCH = PGI_TAB-UMCHA.
*PGI_TAB-CHARG
bapi_z03cdogi_item_data-batch = '0000000401'.
APPEND bapi_z03cdogi_item_data.

bapi_z03cdogi_item_data-deliv_numb = '0080116895'.
bapi_z03cdogi_item_data-deliv_item = '00020'.
bapi_z03cdogi_item_data-dlv_qty = 50.
bapi_z03cdogi_item_data-sales_unit = 'Z37'.
bapi_z03cdogi_item_data-fact_unit_nom = 1. " 此处应从MARM取转换关系
bapi_z03cdogi_item_data-fact_unit_denom = 1." 此处应从MARM取转换关系
* BAPI_Z03CDOGI_ITEM_DATA-BATCH = PGI_TAB-UMCHA.
*PGI_TAB-CHARG
bapi_z03cdogi_item_data-batch = '0000000054'.
APPEND bapi_z03cdogi_item_data.

bapi_z03cdogi_item_control-deliv_numb = '0080116891'.
bapi_z03cdogi_item_control-deliv_item = '00010'.
bapi_z03cdogi_item_control-chg_delqty = 'X'.
APPEND bapi_z03cdogi_item_control.

bapi_z03cdogi_item_control-deliv_numb = '0080116891'.
bapi_z03cdogi_item_control-deliv_item = '00020'.
bapi_z03cdogi_item_control-chg_delqty = 'X'.
APPEND bapi_z03cdogi_item_control.

CALL FUNCTION 'BAPI_OUTB_DELIVERY_CONFIRM_DEC'
EXPORTING
delivery = bapi_z03cdogi_delivery
header_data = bapi_z03cdogi_header_data
header_control = bapi_z03cdogi_header_control
TABLES
item_data = bapi_z03cdogi_item_data
item_control = bapi_z03cdogi_item_control
return = bapi_z03cdogi_return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = bapi_z03cdogi_return.
"清除LIKP-VLSTK 不然无法冲销
UPDATE likp SET vlstk = '' anzpk = '0' WHERE vbeln = '0080116891'." 处理分配状态(分散仓库处理)标志 便于vl09 gj 2006.3.24
COMMIT WORK.

SAP VL02N 交货单过账函数 WS_DELIVERY_UPDATE 用BDC模拟VL02N过账也可以,并不复杂只不过用SAP提供的FunctionModule在扩展性上要好一些。 阅读详情

相关推荐

SAP ABAP开发避坑:用BAPI_OUTB_DELIVERY_CONFIRM_DEC发货过账后,为什么VL09冲销不了?

本文深入分析了SAP ABAP开发中使用BAPI_OUTB_DELIVERY_CONFIRM_DEC发货过账后VL09无法冲销的问题,揭示了VLSTK字段的关键作用及BAPI与标准事务的底层差异,并提供了标准增强方案和完整代码示例,帮助开发者有效解决这一常见痛点。

weixin_26763955的博客 446

ABAP-VL02N修改交货单外部标识BAPI

在创建交货单时调用的BAPI是BAPI_DELIVERYPROCESSING_EXEC,里面虽然也有交货单外部标识的字段, 但是我在创建的时候赋值了,交货单创建成功后发现交货单外部标识并没有写进去, 所以我在交货单创建成功之后再调用WS_DELIVERY_UPDATE去修改交货单的外部标识。

qq_42489747的博客 837

SAP发货过账后冲销失败?一个VLSTK字段引发的‘血案’与BAPI_OUTB_DELIVERY_CONFIRM_DEC避坑指南

本文深入分析了SAP发货过账后冲销失败的常见问题,特别是由BAPI_OUTB_DELIVERY_CONFIRM_DEC引发的VLSTK字段问题。通过详细解析LIKP表中VLSTK字段的隐藏逻辑,提供了两种解决方案:直接清空VLSTK字段和通过增强点修改BAPI过账逻辑。文章还包含最佳实践和避坑指南,帮助开发者避免类似问题。

weixin_30546189的博客 304

SAP ABAP VL02N批次拆分BAPI BAPI_OUTB_DELIVERY_CHANGE BAPI_OUTB_DELIVERY_CONFIRM_DEC

批次拆分: FORMFRM_CHANGE_DELIVERY_NEWTABLESLT_ITEM_TABSTRUCTUREZTMM0140B USINGLS_HEAD_TABTYPEZTMM0140A. FIELD-SYMBOLS: <FS_ITEM>TYPEZTMM0140B. DATA: LS_HEADER_DATALIKEBAPIOBDLVH...

SAP小趴菜 5642

SAP ABAP 利用BAPI实现交货单拣配与发货过账的自动化集成与冲销难题破解

但在实际开发中,我发现最棘手的问题是:用过账BAPI处理后的交货单,在VL09冲销时会报"分散系统无法冲销"的错误。在SAP物流执行模块中,交货单的拣配和发货过账是最频繁的操作之一。我在某汽车零部件项目中发现,如果物料主数据的存储条件(如温度要求)与仓库实际配置不匹配,即使库存充足也会报错。我曾遇到一个案例:某批交货单状态显示已拣配,但仓库实际未出库,就是因为这个参数被错误设置为空。在某医药仓储项目中,我们进一步扩展了这个增强:当特定工厂代码(如PH01)的交货单过账时,自动触发温度监控系统的接口调用。

weixin_30938149的博客 331

SAP ABAP SD 常用BAPI

1.创建标准销售订单的bapi:BAPI_SALESORDER_CREATEFROMDAT2 2.创建退货销售订单的bapi:BAPI_CUSTOMERRETURN_CREATE 3.更改销售订单 bapi:BAPI_SALESORDER_CHANGE 4.根据销售订单创建交货单:BAPI_DELIVERYPROCESSING_EXEC 销售订单是允许

forever_crazy的专栏 7418

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

货铺QQ群号:834508274微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的。进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合不修改昵称会被不定期踢除,谢谢配合下面是干货部分:仅仅是记录下,好久不做这块了,好多想不起来了。这里仅仅是记录下。首先:创建SO 2800...

weixin_36036852的博客 1273

SD模块大概业务流程

SAP SD(Sales and Distribution)模块是SAP系统中用于管理销售和分销业务的核心模块,其主要功能包括客户订单处理、库存管理、发货、开票以及财务过账等。以下是基于引用内容和专业知识整理的SD模块业务操作流程图及详细步骤说明:创建或更新客户主数据,包括通用数据(KNA1)、公司代码视图(KNB1)和销售视图(KNVV)等。:通过事务码VA01创建销售订单,并在订单中输入产品信息、数量、价格等细节。:系统自动进行信用检查和库存检查(ATP确认),确保客户信用额度充足且库存满足需求。

u010398600的博客 1097

告别VL02N手工操作:手把手教你用ABAP封装WS_DELIVERY_UPDATE和BAPI实现自动发货

本文详细介绍了如何利用ABAP封装WS_DELIVERY_UPDATE和BAPI_OUTB_DELIVERY_CONFIRM_DEC实现SAP自动发货,告别VL02N手工操作。通过核心函数模块解析、服务接口设计规范及实战优化方案,帮助开发者构建健壮的自动化发货服务,显著提升供应链效率。

weixin_30338497的博客 298

SAP SD模块VL02N取消外向交货单拣配数量的ABAP实现方案

在ERP系统与供应链管理中,库存管理和订单处理是核心业务流程。SAP作为领先的企业资源规划系统,其SD(销售与分销)模块通过外向交货单管理发货流程,其中拣配操作直接关联库存扣减与物料凭证生成。当遇到库存不足、客户需求变更或质检问题时,需要安全地取消或调整已确认的拣配数量。这涉及到对后台凭证流的逆向冲销操作,而非简单的界面字段修改。从技术实现角度,SAP提供了标准BAPI接口与底层函数两种方案。BAPI_DELIVERYPROCESSING_EXEC因其良好的封装性与业务完整性成为首选,它能自动处理校验、凭证

weixin_30455023的博客 441

VL02N 发货过账

VL02N 发货过账

SAP ABAP 使用BAPI对交货单拣配,发货过账WS_DELIVERY_UPDATE,BAPI_OUTB_DELIVERY_CONFIRM_DEC

拣配 :WS_DELIVERY_UPDATE 发货过账:BAPI_OUTB_DELIVERY_CONFIRM_DEC,过账后无法使用VL09冲销,冲销时报错,分散系统无法冲销。解决方法是BAPI过账后,清空LIKP-VLSTK 。 发货过账VL02N,冲销:VL09 FUNCTION ZSNSDFM_WMS001. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORT

SAP自学之路 5736

SAP反记帐和红字冲销

SAP反记帐和红字冲销 红字冲销 红字冲销法:又称红字更正法也称红字调整法,即先用红字编制一套与错账完全相同的记账凭证,予以冲销,然后再用蓝字编制一套正确的会计分录(全额冲销)。 红字更正法:当多记金额时,还可采用红字更正法更正,将多记的金额用红字填制一张与原错误记账凭证相同的记账凭证冲销多记的金额(差额冲销)。 补充调整法:对会计遗漏的经济事项,按照会计核算程序,用蓝字编制调整分录补充调整, 也包括会计账务借贷科目无误但金额少记,按差额用蓝字编制差额调整。   综合调整法:即红字冲销调整法与补充调整法的结合运用。 SAP的反记帐和红冲实现 由于SAP标准的记帐是不能直接输入负数的,则需要通过反记帐标志来实现,首先需要为凭证类型定义反记帐标志,在“控制数据”屏选择“允许负数过帐”标志(Tcode:OBA7)。 下面用实例来分析SAP反记帐和红冲的关系及其简单设计逻辑

ABAP SAP VL02N VL09 交货单过账和冲销

摘要:本文介绍了SAP系统中两个关键BAPI功能:1) VL02N过账功能,使用BAPI_OUTB_DELIVERY_CONFIRM_DEC进行交货确认,包含交货单号设置、过账状态标记及日期处理,通过BAPI提交事务并验证结果;2) VL09冲销功能,通过WS_REVERSE_GOODS_ISSUE实现已过账交货单的冲销,需提供交货单号和实际发货日期,成功后将生成物料凭证。两个功能均包含完整的错误处理机制,分别返回过账/冲销状态及相关凭证信息。

qq_31799157的博客 2138

未来计算的革命:探索存算一体芯片的潜力与挑战

未来计算的革命:探索存算一体芯片的潜力与挑战

jtwqwq的博客 1611

避坑指南:PCIe设备兼容性那些坑——聊聊MPS/MRRS设置不当引发的血泪史

本文深入探讨了PCIe设备兼容性问题,特别是MPS/MRRS参数设置不当引发的常见故障。通过详细解析MPS(Max Payload Size)和MRRS(Max Read Request Size)的作用机制,提供Linux内核五大配置策略的对比分析,并分享FPGA加速卡等实战案例的排查经验。文章还介绍了诊断工具链、动态调试技巧以及性能优化方法,帮助工程师有效解决PCIe兼容性难题。

weixin_30872499的博客 419

VL01N发货过账无法冲销

1业务场景SD和EWM在使用BAPI:BAPI_OUTB_DELIVERY_CONFIRM_DEC发货过账后,发现外向交货单无法被冲销,后来发现是在发货过账后,有一个字段VLSTK声明仓库被维护上了C,所以无法冲销经过查找,需要做个增强,在外向交货单过账时,去掉这个参数。BADI:LE_SHP_DELIVERY_PROC修改下边的接口:CHANGE_DELIVERY_HEADER因为EWM还有8开头的外向交货单是需要C的,而EWM和SD的4开头的外向交货单是不需要C的,因为做了限制,并且清理声明仓库字段即可

BinGeneral的博客 895

ros2 gazebo仿真阿克曼小车搭载livox mid360雷达流程

流程简介:仿真环境的搭建需要安装ROS2和Gazebo。使用的是Humble版本,需要确认是否已经正确安装。然后是阿克曼小车模型的URDF,需要包括底盘、转向机构、驱动轮等,需要参考现有的阿克曼模型,比如ClearPath的Husky,但需要调整参数。Livox Mid360雷达在Gazebo中的仿真可能没有现成的插件,需要使用通用3D LiDAR插件来模拟。IMU的仿真相对简单,但需要注意噪声模型,以接近真实数据。

weixin_43802726的博客 3211
上一篇: 物料转移过账BAPI_GOODSMVT_CREATE
下一篇: BAPI_TRANSACTION_COMMIT
java_smalltalk
博客等级 码龄20年 8粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值