BAPI:SD销售订单修改:BAPI_SALESORDER_CHANGE_放弃幻想_的博客-程序员秘密

技术标签: ABAP  

REPORT y_test_lzy .

DATA: salesdocument LIKE bapivbeln-vbeln,
order_header_inx LIKE bapisdh1x,
order_header_in LIKE bapisdh1,
return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE,
conditions_in TYPE STANDARD TABLE OF bapicond WITH HEADER LINE,
conditions_inx TYPE STANDARD TABLE OF bapicondx WITH HEADER LINE,
logic_switch LIKE bapisdls.

DATA:lv_msgtxt TYPE char100.
LOOP AT p
t_ztxnth INTO DATA(ls_ztxnth) WHERE bz = 1.

READ TABLE lt_konv_th INTO DATA(ls_konv_th) WITH KEY vbeln = ls_ztxnth-vbeln_th
posnr = ls_ztxnth-posnr_th.
IF sy-subrc = 0.

salesdocument = ls_ztxnth-vbeln_th.
logic_switch-cond_handl = 'X'.
order_header_inx-updateflag = 'U'.

conditions_in-itm_number = ls_ztxnth-posnr_th.
conditions_in-cond_type = 'YA04'.
"差价 = 原销售订单总价格 - 退回订单总价
conditions_in-cond_value = ls_ztxnth-kbetr - ls_konv_th-kbetr.
conditions_in-currency = 'CNY'.
conditions_in-cond_p_unt  = 1.
APPEND conditions_in.

conditions_in-itm_number = ls_ztxnth-posnr_th.
conditions_inx-cond_type = 'YA04'.
conditions_inx-updateflag = 'U'.
conditions_inx-cond_value = 'X'.
conditions_inx-currency = 'X'.
conditions_inx-cond_p_unt  = 1.
APPEND conditions_inx.

ENDIF.

  • ls_ztxnth-kbetr_th = conditions_in-cond_value + ls_konv_th-kbetr.

ls_ztxnth-bz = 2.
MODIFY pt_ztxnth FROM ls_ztxnth.

ENDLOOP.

DELETE conditions_in WHERE cond_value = 0.

IF conditions_in[] IS NOT INITIAL.

PERFORM sapgui_progress_indicator USING ‘退货销售订单正在调整差价’."进度条显示

CALL FUNCTION ‘BAPI_SALESORDER_CHANGE’
EXPORTING
salesdocument = salesdocument
order_header_in = order_header_in
order_header_inx = order_header_inx
logic_switch = logic_switch
TABLES
return = return
conditions_in = conditions_in
conditions_inx = conditions_inx.

CLEAR lv_msgtxt.
LOOP AT return INTO DATA(la_return)
WHERE type = ‘E’
OR type = ‘A’
OR ( type = ‘W’ AND id = ‘V1’ AND number = ‘555’ ).
IF lv_msgtxt NS la_return-message.
CONCATENATE lv_msgtxt la_return-message INTO lv_msgtxt SEPARATED BY ‘/’ .
ENDIF.
ENDLOOP.

ENDIF.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/FQHX_116/article/details/119535773

智能推荐

用java手动实现一个链表的增删改查_慕安凉的博客-程序员秘密

链表实际上就是用很多个Node节点组成的,每个节点Node又包含对象部分和指向下一个节点的指针。对链表的操作其实归根到底就是对节点指针的操作。链表的插入:   1、头插法:每次把新插入的节点当着头结点;   2、尾插法:每次把新插入的节点放在尾部;   3、指定位置插入法:每次在指定位置插入某个节点。链表的删除:    删除指定位置上的某个节点链表的查询:    1、根据节点位置查询该节点;   ...

Windows XP Professional SP2 原版_weixin_30333885的博客-程序员秘密

CD-KEY HCQ9D-TVCWX-X9QRG-J4B2Y-GR2TT QC986-27D34-6M3TY-JJXP9-TBGMD MRX3F-47B9T-2487J-KWKMF-RPWBY DP7CM-PD6MC-6BKXT-M8JJ6-RPXGJ F4297-RCWJP-P482C-YY23Y-XH8W3 迅雷下载Windows XP P...

使用kotlin<一>__Alan_WANG的博客-程序员秘密

使用kotlin<一>: 协程coroutines简述

python模拟点击手机_python3 selenuim PC端使用chrome模拟手机进行H5自动化_weixin_39617685的博客-程序员秘密

情况说明:初次在做PC端使用chrome进行H5自动化测试时,以为和app端自动化一样使用click()就可以对按钮进行点击,找了好几天也没有找到解决方法,有些人说是工程问题,有些人是使用微信进行H5测试,终于找到一篇文章介绍使用TouchAction模拟移动端触摸操作。环境:win10+python3+pycharm+webdriver 2.40+chrome 68.0.3440.75问题:使...

如何查看UVC设备的功能单元组成_go_str的博客-程序员秘密

前言    UVC的Spec在制定时考虑到了诸多不同UVC设备可能存在的特性,为保证Spec具有最大范围的适用性和兼容性,将UVC设备内可能存在的每个功能模块划分为逻辑意义上的功能单元(Entity),并要求具体UVC设备的开发者必须为每个Entity指定ID号,且该ID号能唯一标识某一指定的功能单元,以便Host端的UVC驱动能依此对设备内不同的功能单元进行操作和配置。    根据以上依据,我们...

随便推点

Linux下禅道安装_liquanlong1996的博客-程序员秘密

1.前言现在的公司因为新团队,很多东西都需要从零开始,所以才会有了这篇文章。因为之前公司都是用TAPD啊啥的。所以整理了下在linux下禅道的安装搭建,需要能给到需要的人一点帮助。2.安装禅道软件下载地址:http://www.zentao.net/download.htmlps:服务器链接用的是CRT链接上服务器后使用rz 命令上传安装包然后将安装包直接解压到/opt目录下使用命令tar -zxvf “禅道安装包”-C /opt3、一些常用命令执行/opt/zb..

单实例非ASM中 CSS initialization等待事件解决_cuixian1947的博客-程序员秘密

环境描述:oracle 11.2.0.4 单实例 操作系统:Microsoft(R) Windows(R) Server 2003 Enterprise x64 Edition ...

解决web项目发布新版本需要清除浏览器缓存的问题_web项目解决浏览器缓存_已被格式化的叔叔的博客-程序员秘密

一、解决方案其实浏览器缓存是有好处的,第一次访问网站会从服务器获取静态的资源,然后将静态资源在游览器中缓存,下次用户在访问时,就直接获取游览器的缓存的静态资源,加快响应速度。但是同样也有弊端,当你更新样式或者图片资源的时候,再次访问就不会获取最新修改的静态资源。解决的方案有三种:1、用户自行清理浏览器缓存。2、使用禁用缓存标签,实现禁用浏览器缓存。3、为js和css文件添加版本号。...

scheme 之道_xiao_wanpeng的博客-程序员秘密

转自:http://zoomquiet.org/res/scrapbook/ZqFLOSS/data/20070115154827/开始之前这是一篇 Scheme 的介绍文章. Scheme 是一个 LISP 的方言, 相对于 Common LISP 或其他方言, 它更强调理论的完整和优美, 而不那么强调实用价值. 我在 学习 Scheme 的时候, 常想的不是 "这有

2.2线性表的顺序表示--综合题[3] 删除线性表中所有值为x的元素_52Tiramisu的博客-程序员秘密

自己想到的暴力求解:设置一个数组(初始化为0),遍历顺序表,记录所有值为x的元素(对应下标的数组为1),然后输出时检验不等于1就输出。bool DeleteX(SqList S, ElemType x) { int a[MAXSIZE] = { 0 }; for (int i = 0; i &lt; S.length; i++) { if (S.data[i] == x) a[i] = 1; } for (int i = 0; i &lt; S.length; i++) {

两种方式使用tabhost/tabwidget布局_tabhost tabwidget_bailyzheng的博客-程序员秘密

之前在考虑设计一些客户端时,为了实现Activity下方的类似menu菜单的显示方式,一直傻傻的使用一个footer的布局文件,在这个footer中添加不同的按钮,然后在按钮上添加点击事件,根据点击事件切换到不同的Activity,这几天无聊的查看别人的代码时,才发现自己这种方式的老土,原来Android早就给我们提供了类似的显示方式了,即tabwidget(或者称之为tabhost布局)。

推荐文章

热门文章

相关标签