ABAP 创建、修改、删除内部交货单(VL31N/VL32N)

news/2024/4/16 16:31:43/文章来源:https://blog.csdn.net/lmf496891416/article/details/130155024

一、干货
VL31N创建的BAPI:
1.GN_DELIVERY_CREATE 通用交货单使用的bapi,推荐使用
2.BAPI_DELIVERYPROCESSING_EXEC 简单,但是字段比较少
3.BBP_INB_DELIVERY_CREATE 听说有bug,我就没有使用这个了

VL32N修改/删除BAPI:
BAPI_INB_DELIVERY_CHANGE 使用这个bapi

二、代码实例
根据采购订单创建内部交货单,推荐使用这个bapi

*"通用函数,创建交货单,但是它返回的结果没有行
DATA: ls_vbsk     LIKE  vbsk,es_vbsk     LIKE  vbsk,lt_spe_vbfs TYPE TABLE OF  /spe/vbfs,ls_spe_vbfs TYPE /spe/vbfs,lt_komdlgn  TYPE TABLE OF komdlgn,ls_komdlgn  TYPE komdlgn,lt_vbfs     TYPE TABLE OF vbfs,lt_vbls     TYPE TABLE OF vbls,lt_lips     TYPE TABLE OF lips.CLEAR:ls_vbsk,lt_spe_vbfs,ls_spe_vbfs,lt_komdlgn,ls_komdlgn,lt_vbfs,lt_vbls.SELECT SINGLE *FROM ekpoWHERE ekpo~ebeln = '4500001299' AND ekpo~ebelp = '000020'INTO @DATA(gs_inbound).ls_komdlgn-lfart        = 'EL'.
ls_komdlgn-vgtyp        = 'V'.
ls_komdlgn-kzazu        = 'X'.
ls_komdlgn-lfdat        =  '20230417'."交货时间
ls_komdlgn-wadat        = '20230417' ."发货时间ls_komdlgn-vgbel        = gs_inbound-ebeln.
ls_komdlgn-vgpos        = gs_inbound-ebelp.
ls_komdlgn-lifnr        = '0000100235'."GS_INBOUND-LIFNR."供应商
ls_komdlgn-lfimg        = '1'."GS_INBOUND-LFIMG."数量
ls_komdlgn-matnr        = gs_inbound-matnr.
ls_komdlgn-werks        = gs_inbound-werks.
ls_komdlgn-lgort        = gs_inbound-lgort.ls_komdlgn-vrkme        = gs_inbound-meins.
ls_komdlgn-meins        = gs_inbound-meins.
ls_komdlgn-lifex        = gs_inbound-ebeln.
ls_komdlgn-lifexpos     = gs_inbound-ebelp.
ls_komdlgn-lichn        =  '55555'. "供应商批次
ls_komdlgn-hsdat        =  '20230416' ."生产日期APPEND ls_komdlgn TO lt_komdlgn.ls_vbsk-mandt = sy-mandt.
ls_vbsk-ernam = sy-uname.
ls_vbsk-erdat = sy-datum.
ls_vbsk-uzeit = sy-uzeit.
ls_vbsk-smart = 'L'.CALL FUNCTION 'GN_DELIVERY_CREATE'EXPORTINGvbsk_i      = ls_vbskIMPORTINGvbsk_e      = es_vbskTABLESxvbfs       = lt_vbfsxvbls       = lt_vblsxkomdlgn    = lt_komdlgnxxlips      = lt_lipset_spe_vbfs = lt_spe_vbfs.LOOP AT lt_spe_vbfs  INTO ls_spe_vbfs WHERE msgty CA  'EAX'.ENDLOOP.
IF sy-subrc = 0. "创建失败了ROLLBACK WORK.
ELSE.COMMIT WORK.ENDIF.

第二种创建内部交货单,这种简单快捷,但是字段少。

DATA: lt_request TYPE TABLE OF bapideliciousrequest .
DATA:ls_request  TYPE bapideliciousrequest .
DATA: lt_created TYPE TABLE OF bapideliciouscreateditems .
DATA: lt_return  TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.ls_request-id = '1'.
ls_request-document_numb = '4500001299'.
ls_request-document_item = '000020'.
ls_request-document_type = 'B'.
ls_request-quantity_base__uom = '2.000'.
ls_request-delivery_date = sy-datum."交货日期
"LS_REQUEST-DELIVERY_TIME = ''.
APPEND ls_request TO lt_request.CHECK lt_request[] IS NOT INITIAL.CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'TABLESrequest      = lt_request[]createditems = lt_created"  EXTENSIONIN  = LT_EXTENSIONreturn       = lt_return.IF lt_return IS INITIAL."就是成功了READ TABLE lt_created INTO DATA(ls_created) INDEX 1.COMMIT WORK.
ELSE."失败了LOOP AT lt_return INTO DATA(ls_return).ENDLOOP.
ENDIF.

修改内部交货单数量,批次之类的,但是有些字段修改不到。

DATA:ls_head     TYPE bapiibdlvhdrchg,ls_headx    TYPE bapiibdlvhdrctrlchg,ls_del      TYPE bapiibdlvhdrchg-deliv_numb,ls_dn_item  TYPE bapiibdlvitemchg,lt_dn_item  TYPE TABLE OF bapiibdlvitemchg,ls_dn_itemx TYPE bapiibdlvitemctrlchg,lt_dn_itemx TYPE TABLE OF bapiibdlvitemctrlchg,lt_return   TYPE TABLE OF bapiret2.CLEAR:ls_head ,ls_headx,ls_del,lt_dn_item,lt_dn_itemx,lt_return.
DATA:us_lips TYPE lips.
us_lips-vbeln =  '0180000460'.
SELECT SINGLE * FROM lips WHERE vbeln =  '0180000460' AND posnr = '000010'  INTO @DATA(ls_lips).
"抬头
ls_head-deliv_numb = '0180000460'.
ls_headx-deliv_numb = '0180000460'."行项目
ls_dn_item-deliv_numb = '0180000460'.
ls_dn_item-deliv_item = '000010'.
ls_dn_item-dlv_qty = '1'. "原交货单新数量= 原交货单老数量 - 该行拆分数量
ls_dn_item-sales_unit = ls_lips-vrkme."单位SELECT SINGLE umrez umren
INTO (ls_dn_item-fact_unit_nom,ls_dn_item-fact_unit_denom)
FROM marm
WHERE matnr = ls_lips-matnr "销售单位一定要先在主数据维护
AND meinh = ls_dn_item-sales_unit.APPEND ls_dn_item TO lt_dn_item.ls_dn_itemx-deliv_numb = '0180000460'.
ls_dn_itemx-deliv_item =  '000010'.
ls_dn_itemx-chg_delqty = 'X'."修改交货数量
APPEND ls_dn_itemx TO lt_dn_itemx.CALL FUNCTION 'BAPI_INB_DELIVERY_CHANGE'EXPORTINGheader_data    = ls_headheader_control = ls_headxdelivery       = ls_head-deliv_numbTABLESitem_data      = lt_dn_itemitem_control   = lt_dn_itemxreturn         = lt_return.IF sy-subrc = 0.COMMIT WORK AND WAIT.
ENDIF.

删除整单内部交货单,行项目也可删除,去item里面打上删除标记

ls_head-deliv_numb =   '0180000460'.
ls_headx-deliv_numb =  '0180000460'.
ls_headx-dlv_del  = 'X'. "整单删除CALL FUNCTION 'BAPI_INB_DELIVERY_CHANGE'EXPORTINGheader_data    = ls_headheader_control = ls_headxdelivery       = ls_head-deliv_numbTABLESreturn         = lt_return.

做些资源总结,方便以后使用,把上面具体的单据改成你的测试数据,就可以使用运行了。

好了,分享使我快乐,我是寒武青锋。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_286491.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从此告别PPT制作的烦恼:ChatGPT和MindShow帮你快速完成

目录前言一、chatGPT&MindShow简介二、chatGPT&MindShow搭配生成PPT2-1、注意事项2-2、生成PPT的步骤2-3、使用chatGPT进行探索2-4、内容生成2-5、PPT制作三、碎碎念总结前言 随着科技的不断发展,人们对于AI技术的依赖和需求也在逐渐增加。然而&#xff0c…

使用layui组件库制作进度条

使用layui组件库制作进度条 html代码 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>Example</title><!-- 引入 layui 的 CSS 文件 --><link rel"stylesheet" href"https://cdn.staticfil…

(数字图像处理MATLAB+Python)第四章图像正交变换-第四、五节:Radon变换和小波变换

文章目录一&#xff1a;Radon变换&#xff08;1&#xff09;Radon变换原理&#xff08;2&#xff09;Radon变换实现&#xff08;3&#xff09;Radon变换性质&#xff08;4&#xff09;Radon变换应用二&#xff1a;小波变换&#xff08;1&#xff09;小波A&#xff1a;定义B&…

盐城北大青鸟告诉你互联网大厂的哪些岗位不限专业?

进大厂是毕业生、职场人梦寐以求的工作&#xff01; 除了高薪以外&#xff0c;大厂具有舒适的工作环境&#xff0c;一流高校的同事&#xff0c;高额的住房补贴&#xff0c;健身房&#xff0c;下午茶&#xff0c;重点是还有营养丰富的员工餐&#xff01; 那互联网公司都有什么…

Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

状态管理是自适应平台服务中的一个功能集群。 在自适应平台中&#xff0c;状态决定了一组活动的自适应应用程序。 特定于项目的应用程序&#xff0c;即状态管理器&#xff0c;决定何时请求状态更改&#xff0c;从而更改当前活动的应用程序集。状态管理器是特定于项目的&#…

基于NXP iMX8M Mini处理器测试DPDK

By Toradex秦海 1). 简介 DPDK (Data Plane Development Kit) 软件是一组用户空间库和驱动程序&#xff0c;可加速在所有主要 CPU 架构上运行的网络数据包处理工作负载&#xff0c;以便提升整个网络数据服务的QoS。其最早由 Intel 大约 2010年创建&#xff0c;后由6WIND公司发…

【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )

文章目录一、元素的显示与隐藏二、display 隐藏对象1、display 隐藏对象语法说明2、display 显示元素代码示例3、display 隐藏元素代码示例三、visibility 隐藏对象1、visibility 隐藏对象语法说明2、visibility 显示对象代码示例3、visibility 隐藏对象代码示例四、overflow 隐…

96年阿里P7晒出工资单:狠补了这个,真香...

最近一哥们跟我聊天装逼&#xff0c;说他最近从阿里跳槽了&#xff0c;我问他跳出来拿了多少&#xff1f;哥们表示很得意&#xff0c;说跳槽到新公司一个月后发了工资&#xff0c;月入5万多&#xff0c;表示很满足&#xff01;这样的高薪资着实让人羡慕&#xff0c;我猜这是税后…

MongoDB 聚合管道的集合关联($lookup)及合并($unionWith)

目前为止&#xff0c;我们已经介绍了一部分聚合管道中的管道参数&#xff1a; $match&#xff1a;文档过滤 $group&#xff1a;文档分组&#xff0c;并介绍了分组中的常用操作&#xff1a;$addToSet&#xff0c;$avg&#xff0c;$sum&#xff0c;$min&#xff0c;$max等。 $add…

可用的rtsp ,rtmp地址以及使用VLC和ffmpeg 播放视频流

可用的 rtmp地址: rtmp://ns8.indexforce.com/home/mystream 可用的 rtsp地址: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 可搭配VLC播放器使用&#xff0c;以及虚幻4 流媒体使用&#xff0c;实现直播效果 1.使用VLC 播放&#xff1a;https://www.vi…

某某客户的一次勒索病毒应急响应

Lockbit勒索病毒应急响应背景1、应急处理排查2、勒索病毒来源分析3、勒索病毒分析4、勒索病毒解密5、主机分析分析6、后续安全加固和改进措施结论背景 美好的周六刚开始&#xff0c;眼睛一睁&#xff0c;领导就发消息&#xff0c;说某客户中了勒索病毒&#xff0c;特别着急&am…

2023年第三届智能机器人与系统国际会议(ISoIRS 2023) | IEEE-CPS独立出版

2023年第三届智能机器人与系统国际会议(ISoIRS 2023) | IEEE-CPS独立出版 会议简介 Brief Introduction 2023年第三届智能机器人与系统国际会议(ISoIRS 2023) 会议时间&#xff1a;2023年5月26日-28日 召开地点&#xff1a;中国长沙 大会官网&#xff1a;www.isoirs.org ISoIRS…

项目打包记录提交id

某天上午正在摸鱼的小邓&#xff0c;突然被领导拉倒一个2年前项目的现场问题沟通群&#xff0c;说是现场数据无法入库&#xff0c;需要排查&#xff0c;奈何不知道版本&#xff0c;无奈的小邓值得用时间记录一个点一个点的从gitlab中查找&#xff0c;为了防止后续提供到现场的版…

基于DSP+FPGA的机载雷达伺服控制系统的硬件设计与开发(一)总体设计

2.1 功能要求及性能指标 2.1.1 功能要求 &#xff08;1&#xff09;具备方位和俯仰两轴运动的能力&#xff1b; &#xff08;2&#xff09;方位轴可实现预置、周扫和扇扫功能&#xff1b; &#xff08;3&#xff09;俯仰轴可实现预置功能。 2.1.2 性能指标 &#xff08;1&#…

江南爱窗帘十大品牌,怎么合理的搭配窗帘配色

窗帘行业圈&#xff1a;窗帘行业内部交流圈&#xff0c;窗帘从业者的交流内部圈。 当阳光照进房间的那一刻&#xff0c; 光线给空间带来了无限的可能。 窗边的帘帐既是美丽的风景 又是可爱的魔术师。 在光影变幻的时空里 让你的生活布满温馨和奇幻。 1.窗帘材质怎么选 窗帘的材…

Voting_Averaging算法预测银行客户流失率

Voting_Averaging算法预测银行客户流失率 描述 为了防止银行的客户流失&#xff0c;通过数据分析&#xff0c;识别并可视化哪些因素导致了客户流失&#xff0c;并通过建立一个预测模型&#xff0c;识别客户是否会流失&#xff0c;流失的概率有多大。以便银行的客户服务部门更…

Qt Quick - 分隔器综述

Qt Quick - 分隔器综述一、概述二、MenuSeparator 控件1. 用法&#xff1a;三、ToolSeparator 控件1. 用法一、概述 Qt Quick Controls 提供了多种分隔符&#xff0c;其实就是分割一下MenuBar和ToolBar里面的内容。 控件功能MenuSeparator将菜单中的一组项目与相邻项目分开To…

高效部署Redis Sentinel模式(哨兵模式),手把手教学

Redis Sentinel模式部署前言一、服务器部署同版本的redis1、换软件源在yum拉取包的时候启用remi源二、修改配置文件1.修改/etc/redis.conf2.配置/etc/redis/sentinel.conf三、启动redis服务1、启动服务2、连接redis3、检查redis前言 这里就不过多的解释高可用的好处了&#xf…

一文吃透Http协议

Http 协议 1. 初始 Http Http 协议 , 是应用层最为广泛使用的协议 , Http 就是浏览器和服务器之间的桥梁. Http 是基于 TCP 协议实现的 , 通常我们输入搜索框中的网址 (URL) , 浏览器就会根据这个 URL 构造出一个 Http 请求 , 发送给服务器. 服务器就会返回一个 Http 响应(包…

计组2.4——加法器的设计

计组&#xff1a;2.4算术逻辑单元异或门实现奇偶校验的原理串行加法器&&并行加法器并行加法器的优化算术逻辑单元 控制信号&#xff1a; 当M0时表示算术运算 当M1时表示逻辑运算 S0~ S3表示做什么运算&#xff0c;因此ALU可以表示16种算数运算和16种逻辑运算 Ai,Bi代表…