SAP SD VL02N 交货单拣配数量 WS_DELIVERY_UPDATE 交货单过账 BAPI_OUTB_DELIVERY_CONFIRM_DEC
本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系。
SD VL02N时如果要交货过账,之前需要先拣配数量。操作就是前台输入一个拣配数量,然后保存
代码如下
DATA: LS_VBKOK TYPE VBKOK.DATA: LT_VBKOK TYPE STANDARD TABLE OF VBKOK.DATA: LT_PROTT TYPE STANDARD TABLE OF PROTT.DATA: LS_PROTT TYPE PROTT.DATA: LT_VBPOK TYPE STANDARD TABLE OF VBPOK.DATA: LS_VBPOK TYPE VBPOK.DATA: LV_MESSAGE TYPE STRING.DATA: LV_ALL_MESSAGE TYPE STRING.DATA: LV_FLAG TYPE CHAR01.LOOP AT LT_SEL INTO LS_SEL .LS_VBKOK-VBELN_VL = LS_SEL-VBELN_VL.LS_VBKOK-KOMUE = 'X'. "交货数量 = 捡配数量LS_VBKOK-KZKODAT = 'X'. "Picking date LS_VBKOK-KODAT = SY-DATUM. "Picking date LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND VBELN_VL = LS_SEL-VBELN_VL .CLEAR:LS_VBPOK,LV_FLAG,LV_MESSAGE,LV_ALL_MESSAGE,LT_PROTT.LS_VBPOK-VBELN_VL = GS_DATA-VBELN_VL.LS_VBPOK-POSNR_VL = GS_DATA-POSNR_VL.LS_VBPOK-VBELN = GS_DATA-VBELN_VA. LS_VBPOK-POSNN = GS_DATA-POSNR_VA. LS_VBPOK-PIKMG = GS_DATA-PIKMG.LS_VBPOK-VRKME = GS_DATA-MEINS.APPEND LS_VBPOK TO LT_VBPOK.ENDLOOP.CALL FUNCTION 'WS_DELIVERY_UPDATE'EXPORTINGVBKOK_WA = LS_VBKOK
* COMMIT = CONDELIVERY = LS_SEL-VBELN_VLUPDATE_PICKING = 'X'SYNCHRON = 'X'
* if_database_update = 'X' "L.S Commentd outNICHT_SPERREN = 'X' "L.S InsertedTABLESVBPOK_TAB = LT_VBPOKPROT = LT_PROTTEXCEPTIONSERROR_MESSAGE = 1OTHERS = 2 .IF SY-SUBRC = 0 .LOOP AT LT_PROTT INTO LS_PROTT WHERE MSGTY CA 'EAX'.CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = LS_PROTT-MSGIDMSGNR = LS_PROTT-MSGNOMSGV1 = LS_PROTT-MSGV1MSGV2 = LS_PROTT-MSGV2MSGV3 = LS_PROTT-MSGV3MSGV4 = LS_PROTT-MSGV4IMPORTINGMESSAGE_TEXT_OUTPUT = LV_MESSAGE.CONCATENATE LV_ALL_MESSAGE LV_MESSAGE INTO LV_ALL_MESSAGE .LV_MESSAGE = LV_ALL_MESSAGE.LV_FLAG = 'X' .CLEAR LS_PROTT.ENDLOOP.ELSE.CLEAR LV_MESSAGE.CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = SY-MSGIDMSGNR = SY-MSGNOMSGV1 = SY-MSGV1MSGV2 = SY-MSGV2MSGV3 = SY-MSGV3MSGV4 = SY-MSGV4IMPORTINGMESSAGE_TEXT_OUTPUT = LV_ALL_MESSAGE.LV_MESSAGE = LV_ALL_MESSAGE.LV_FLAG = 'X' .ENDIF .IF LV_FLAG IS INITIAL .CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT = 'X'.LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND VBELN_VL = LS_SEL-VBELN_VL .GS_DATA-ICONS = ICON_GREEN_LIGHT.MODIFY GT_DATA FROM GS_DATA.ENDLOOP.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND VBELN_VL = LS_SEL-VBELN_VL .GS_DATA-ICONS = ICON_RED_LIGHT.GS_DATA-MESSAGE = LV_ALL_MESSAGE.MODIFY GT_DATA FROM GS_DATA.ENDLOOP.ENDIF.ENDLOOP.
拣配过之后,交货单可以过账,生成物料凭证
代码如下
LOOP AT LT_SEL INTO LS_SEL.CLEAR:LS_HEADER_DATA,LS_HEADER_CONTROL,LV_DELIVERY_NUMB,LT_HEADER_DEADLINES,LT_ITEM_DATA,LT_ITEM_CONTROL,LT_RETURN_TAB.
*准备抬头信息LS_HEADER_DATA-DELIV_NUMB = LS_SEL-VBELN_VL.
*抬头控制信息。LS_HEADER_CONTROL-DELIV_NUMB = LS_SEL-VBELN_VL.LS_HEADER_CONTROL-POST_GI_FLG = 'X'.
*更改发货过账日期。CLEAR LS_HEADER_DEADLINES .LS_HEADER_DEADLINES-DELIV_NUMB = LS_SEL-VBELN_VL.LS_HEADER_DEADLINES-TIMETYPE = 'WSHDRWADTI' ."发货过账 。CONCATENATE SY-DATUM SY-TIMLO INTO LV_TIMESTAMP .CONDENSE LV_TIMESTAMP .LS_HEADER_DEADLINES-TIMESTAMP_UTC = LV_TIMESTAMP .
* LS_HEADER_DEADLINES-TIMEZONE = 'UTC+8' .APPEND LS_HEADER_DEADLINES TO LT_HEADER_DEADLINES .LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND VBELN_VL = LS_SEL-VBELN_VL AND ICONS = ICON_GREEN_LIGHT.LS_ITEM_DATA-DELIV_NUMB = GS_DATA-VBELN_VL. "外向交货单号LS_ITEM_DATA-DELIV_ITEM = GS_DATA-POSNR_VL. "交货单行项目LS_ITEM_DATA-DLV_QTY = GS_DATA-PIKMG .LS_ITEM_DATA-MATERIAL = GS_DATA-MATNR.LS_ITEM_DATA-BATCH = GS_DATA-CHARG."批次LS_ITEM_DATA-SALES_UNIT = GS_DATA-MEINS.SELECT SINGLEUMREZUMRENINTO (LS_ITEM_DATA-FACT_UNIT_NOM,LS_ITEM_DATA-FACT_UNIT_DENOM)FROMMARMWHERE MATNR EQ GS_DATA-MATNRAND MEINH EQ GS_DATA-MEINS.IF SY-SUBRC = 0 .ELSE.LS_ITEM_DATA-FACT_UNIT_NOM = '1'. "此处应从MARM取转换关系LS_ITEM_DATA-FACT_UNIT_DENOM = '1'."此处应从MARM取转换关系ENDIF.*行项目控制LS_ITEM_CONTROL-DELIV_NUMB = GS_DATA-VBELN_VL..LS_ITEM_CONTROL-DELIV_ITEM = GS_DATA-POSNR_VL.LS_ITEM_CONTROL-CHG_DELQTY = 'X'.APPEND LS_ITEM_CONTROL TO LT_ITEM_CONTROL.CLEAR LS_ITEM_CONTROL.ENDLOOP.CALL FUNCTION 'BAPI_OUTB_DELIVERY_CONFIRM_DEC'EXPORTINGHEADER_DATA = LS_HEADER_DATAHEADER_CONTROL = LS_HEADER_CONTROLDELIVERY = LV_DELIVERY_NUMB
* TECHN_CONTROL =
* HEADER_DATA_SPL =
* HEADER_CONTROL_SPL =TABLES
* HEADER_PARTNER =
* HEADER_PARTNER_ADDR =HEADER_DEADLINES = LT_HEADER_DEADLINESITEM_DATA = LT_ITEM_DATA "行项目数据ITEM_CONTROL = LT_ITEM_CONTROL
* ITEM_CODING_BLOCK =ITEM_SERIAL_NO = LT_ITEM_SERIAL_NO "行项目序列号
* SUPPLIER_CONS_DATA =
* HANDLING_UNIT_HEADER =
* HANDLING_UNIT_ITEM =
* HANDLING_UNIT_HEADER_EPC =
* HANDLING_UNIT_ITEMS_EPC =
* HANDLING_UNIT_SERNO =
* EXTENSION1 =
* EXTENSION2 =RETURN = LT_RETURN_TAB
* TOKENREFERENCE =
* HANDLING_UNIT_HEADER_CROSS =
* ITEM_DATA_SPL =
* HANDLING_UNIT_IDENTIFIERS =
* HANDLING_UNIT_ITEM_SPL =
* ITEM_DATA_DOCU_BATCH =
* NEW_ITEM_DATA =
* NEW_ITEM_DATA_SPL =
* NEW_ITEM_ORG =
* TEXT_HEADER =
* TEXT_LINES =
* NEW_ITEM_DATA_SKU =.LOOP AT LT_RETURN_TAB INTO LS_RETURN_TAB WHERE TYPE CA 'EAX'.LV_FLAG = 'X'.CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGMSGID = LS_RETURN_TAB-IDMSGNR = LS_RETURN_TAB-NUMBERMSGV1 = LS_RETURN_TAB-MESSAGE_V1MSGV2 = LS_RETURN_TAB-MESSAGE_V2MSGV3 = LS_RETURN_TAB-MESSAGE_V3MSGV4 = LS_RETURN_TAB-MESSAGE_V4IMPORTINGMESSAGE_TEXT_OUTPUT = LV_MESSAGE.CONCATENATE LV_ALL_MESSAGE LV_MESSAGE INTO LV_ALL_MESSAGE.ENDLOOP.IF LV_FLAG EQ 'X'.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND VBELN_VL = LS_SEL-VBELN_VL AND ICONS = ICON_GREEN_LIGHT..GS_DATA-MESSAGE = LV_ALL_MESSAGE.GS_DATA-ICONS = ICON_RED_LIGHT.MODIFY GT_DATA FROM GS_DATA.ENDLOOP.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT = 'X'.LOOP AT GT_DATA INTO GS_DATA WHERE BOX IS NOT INITIAL AND VBELN_VL = LS_SEL-VBELN_VL AND ICONS = ICON_GREEN_LIGHT..GS_DATA-ICONS = ICON_GREEN_LIGHT.MODIFY GT_DATA FROM GS_DATA.ENDLOOP.ENDIF.ENDLOOP.
SAP SD VL02N 交货单拣配数量 WS_DELIVERY_UPDATE 交货单过账 BAPI_OUTB_DELIVERY_CONFIRM_DEC相关推荐
- 交货单批次拆分(BAPI_OUTB_DELIVERY_CHANGE )并更改拣配数量,发货过账(WS_DELIVERY_UPDATE)
*&---------------------------------------------------------------------* *& Report ZVL02N_C ...
- SAP ABAP WS_DELIVERY_UPDATE 更新拣配数量并发货过账
FUNCTION ZSD_MC_DELIVERY_POST. *"-------------------------------------------------------------- ...
- SAP ABAP 使用BAPI对交货单拣配,发货过账WS_DELIVERY_UPDATE,BAPI_OUTB_DELIVERY_CONFIRM_DEC
拣配 :WS_DELIVERY_UPDATE 发货过账:BAPI_OUTB_DELIVERY_CONFIRM_DEC,过账后无法使用VL09冲销,冲销时报错,分散系统无法冲销.解决方法是BAPI过账后 ...
- SAP SD VL02N对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs for Business Area –
SAP SD VL02N对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs for Business Area – ...
- 【ABAP】更新交货单交货数量和拣配数量
需求: Demo: *&---------------------------------------------------------------------* *& Report ...
- 在lips追加拣配数量
最近比较忙,此方案出后测试了很多种情况都存在问题,只能留待以后处理了...... 1.进入SE11键入LIPS表,点击APPEND STRUCTURE创建结构ZPIKMG,在结构中添加字段ZZPIKM ...
- SAP WM 如何看一个交货单相关的TO是从哪些货架上拣配的?
SAP WM 如何看一个交货单相关的TO是从哪些货架上拣配的? 如下交货单2112282143,需要从多个不同的货架上拣配4个HU下来, 如果要以列表形式显示这些HU是从哪些仓位上拣配的,如何做? 输 ...
- 【整理】SD交货拣配(Picking)处理
SD交货拣配(Picking)处理 根据销售订单创建完外向交货单之后,如果还涉及库存物料的出库,则可能需要一系列的步骤,如拣配.包装.运输等.其中"拣配"是向客户交货而准备货物的过 ...
- ABAP如何修改SAP交货单的各个日期:计划、拣货、运输、过账
今天遇到一个这样的问题,在根据销售订单创建交货单的时候,需求要求讲各个日期都统一写成指定日期,这个日期一般都是过去的日期,而非当天. 目标效果如下图: 虽然凭证日期是9.1日,但拣配.运输.过账日期都 ...
最新文章
- bzoj3503: [Cqoi2014]和谐矩阵
- 覆盖索引与联合索引_浅析MySQL的索引覆盖和索引下推
- mybatis-plus超详细讲解
- 深入理解PHP内核(十二)函数-函数的定义、传参及返回值
- SSI指令使用详解(转)
- STC8H开发(十四): I2C驱动RX8025T高精度实时时钟芯片
- 用计算机控制人造卫星和导弹发射,用计算机控制人造卫星和导弹的发射,按计算机应用的分类,它应属于什么...
- 目前常用的室内导航地图有哪些?什么软件可以室内导航?
- IDEA设置为Eclipse常用快捷键keymap
- 计算机不用时怎样休眠,怎么样设置电脑长时间不用进入休眠
- bedtools subtract 基因区段取差集
- 基于非对称纳什谈判的多微网电能共享运行优化策略
- 深瑞IEC103协议
- 【AFL(十三)】afl-whatsup 使用详解
- C++Qt开发——文件操作
- Python编程之反向输出列表
- 谈谈如何从本质上理解sql语句, 存储过程,ORM之间的联系和取舍
- 从技术迭代到实践应用,一文看透AI中台演进之路
- 雷丁CAN通讯信号上位机,比德文,宝路达,看通讯报文,查故障,灰常方便实用
- 如何在公众号文章标题前增加小图标