VL01N/VL02N增强-退货订单(ZRE,ZWRE,ZRD)在VL01N对于发货过账时判断成本是否为0碰到的问题
来源:互联网 发布:淘宝客订单虚假交易 编辑:程序博客网 时间:2024/04/28 13:05
ZOR,ZWOR等类型订单在VL01N发货过账时用增强MCS50001判断,但是ZRE等类型的退货订单不会进入MCS50001这个增强,早几个月前就找过VL01N的增强,当时测试了很多都不会执行,今天下了狠心,把所有增强都打开,发现还真有个增强可以执行到。早先测试的时候看这个增强怎么也不像是用于判断的。
经测试发现该增强在VL01N新创建及发货过账的时候都会执行。而且参数只有 is_lips 和is_likp,在新建和发货过账时完全一样,业务部门要求在发货过账时才判断,根本无法用现有参数数据判断是否新建还是发货过账,又给出了一大难题。
折腾了好长时间想到直接用SY-UCOMM判断是否点击了发货过账按钮,经测试还真可以。
*&---------------------------------------------------------------------*
*& 包括 ZXV50U07
*&---------------------------------------------------------------------*
break ypcheng.
DATA: field(30),
ls_attyp LIKE mara-attyp,
ls_taklv LIKE mara-taklv,
ldc_kwert LIKE konv-kwert,
ls_knumv LIKE vbak-knumv,
ls_matnr LIKE vbap-matnr,
ls_mtart LIKE mara-mtart.
DATA: ls_message(200) TYPE c.
FIELD-SYMBOLS:<f1> TYPE ANY,<f2> TYPE ANY.
break ypcheng.
IF sy-ucomm = 'WABU_T'.
break ypcheng.
field = '(SAPMV50A)VBAK-AUART'.
ASSIGN (field) TO <f1>.
IF <f1> = 'ZRE' OR <f1> = 'ZWRE' OR <f1> = 'ZRD'.
break ypcheng.
field = '(SAPMV50A)VBAK-KNUMV'.
ASSIGN (field) TO <f2>.
ls_knumv = <f2>.
ls_message = ''.
SELECT kwert INTO ldc_kwert FROM konv WHERE knumv = ls_knumv AND ( kschl = 'ZIV3' OR kschl = 'ZIV1' OR kschl = 'VPRS' ) AND kposn = is_lips-posnr.
SELECT SINGLE attyp mtart INTO (ls_attyp,ls_mtart) FROM mara WHERE matnr = is_lips-matnr.
IF ldc_kwert = 0 AND is_lips-matkl <> 'R1699' AND is_lips-matkl <> 'R9998' AND is_lips-matkl <> 'R9999' AND is_lips-lfimg > 0 AND ls_attyp <> '10' AND ls_mtart <> 'Z008'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = is_lips-matnr
IMPORTING
output = ls_matnr.
CONCATENATE '当前订单' ls_matnr '商品的ZIV1/ZIV3/VPRS的价格为0,不能发货过账!' INTO ls_message.
MESSAGE e398(00) WITH ls_message.
ENDIF.
ENDSELECT.
ENDIF.
经测试发现该增强在VL01N新创建及发货过账的时候都会执行。而且参数只有 is_lips 和is_likp,在新建和发货过账时完全一样,业务部门要求在发货过账时才判断,根本无法用现有参数数据判断是否新建还是发货过账,又给出了一大难题。
折腾了好长时间想到直接用SY-UCOMM判断是否点击了发货过账按钮,经测试还真可以。
*&---------------------------------------------------------------------*
*& 包括 ZXV50U07
*&---------------------------------------------------------------------*
break ypcheng.
DATA: field(30),
ls_attyp LIKE mara-attyp,
ls_taklv LIKE mara-taklv,
ldc_kwert LIKE konv-kwert,
ls_knumv LIKE vbak-knumv,
ls_matnr LIKE vbap-matnr,
ls_mtart LIKE mara-mtart.
DATA: ls_message(200) TYPE c.
FIELD-SYMBOLS:<f1> TYPE ANY,<f2> TYPE ANY.
break ypcheng.
IF sy-ucomm = 'WABU_T'.
break ypcheng.
field = '(SAPMV50A)VBAK-AUART'.
ASSIGN (field) TO <f1>.
IF <f1> = 'ZRE' OR <f1> = 'ZWRE' OR <f1> = 'ZRD'.
break ypcheng.
field = '(SAPMV50A)VBAK-KNUMV'.
ASSIGN (field) TO <f2>.
ls_knumv = <f2>.
ls_message = ''.
SELECT kwert INTO ldc_kwert FROM konv WHERE knumv = ls_knumv AND ( kschl = 'ZIV3' OR kschl = 'ZIV1' OR kschl = 'VPRS' ) AND kposn = is_lips-posnr.
SELECT SINGLE attyp mtart INTO (ls_attyp,ls_mtart) FROM mara WHERE matnr = is_lips-matnr.
IF ldc_kwert = 0 AND is_lips-matkl <> 'R1699' AND is_lips-matkl <> 'R9998' AND is_lips-matkl <> 'R9999' AND is_lips-lfimg > 0 AND ls_attyp <> '10' AND ls_mtart <> 'Z008'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = is_lips-matnr
IMPORTING
output = ls_matnr.
CONCATENATE '当前订单' ls_matnr '商品的ZIV1/ZIV3/VPRS的价格为0,不能发货过账!' INTO ls_message.
MESSAGE e398(00) WITH ls_message.
ENDIF.
ENDSELECT.
ENDIF.
ENDIF.
转载自:http://blog.sina.com.cn/s/blog_6f99a0500100ryzl.html
- VL01N/VL02N增强-退货订单(ZRE,ZWRE,ZRD)在VL01N对于发货过账时判断成本是否为0碰到的问题
- VL02N VL01N"发货过账"的增强 user-exit MCS50001
- VL01N、VL02N保存到数据库后触发的增强
- vl03n vl01n vl02n 增强页面
- VL01N/QA32/QA11出口增强
- VL01N的 BAPI_OUTB_DELIVERY_CREATE_SLS
- VL01N时【对于直到所选日期的交货没有到期的计划行】解决方案
- SAP使用VL01N创建发货报错“对于指导所选日期的交货没有到期的计划行”的原因
- 发货过账(vl02n)bapi 及冲销
- VL01N销售订单拣配bapi
- VL01N销售订单拣配bapi
- 退货冲账过账成本更新
- vl01n bapi
- ABAP中,利用函数WS_DELIVERY_UPDATE进行VL02N发货过账时获取凭证号(mblnr)
- 交货单 增强 VL01N:LE_SHP_DELIVERY_PROC自动增加批次号
- 【三代增强干货一枚】外向交货单Delivery (VL01N)Header屏幕增强
- 订单、支付、退款、发货、退货等编号自动生成类
- 订单、支付、退款、发货、退货等编号自动生成类
- S 7 - Status bar overlaps the view
- 在现在的CMP上的共享缓存是否对于目前的多线程应用有影响?
- IPv6协议栈安装方法
- ormLite框架持久化编程
- 设计模式之(四)Singleton模式
- VL01N/VL02N增强-退货订单(ZRE,ZWRE,ZRD)在VL01N对于发货过账时判断成本是否为0碰到的问题
- NASM汇编指令复习
- cookie实现自动登陆(1)
- 瑞星携手华为——打开虚拟化安全市场的新大门
- 在 Unix 环境中正确设置 NLS_LANG (文档 ID 1548858.1)
- linux 设备模型
- IT English Collection(13) of Nib file
- 鲍尔默最后一次员工大会:声泪俱下别微软
- c++实现bmp文件的读写