PS组件相关BAPI
一、新增组件BAPI
"-----------------------------------------@斌将军--------------------------------------------
DATA:lv_number LIKE bapi_network_list-network,
lv_return LIKE bapiret2,
lt_components TYPE TABLE OF bapi_network_comp_add,
ls_components TYPE bapi_network_comp_add,
lt_message_table TYPE TABLE OF bapi_meth_message WITH HEADER LINE,
ls_message_table TYPE bapi_meth_message,
lt_activity TYPE TABLE OF bapi_network_comp_act_rng WITH HEADER LINE,
lt_components_list TYPE TABLE OF bapi_network_comp_list WITH HEADER LINE,
lt_components_id TYPE TABLE OF bapi_network_comp_id WITH HEADER LINE,
lt_components_detail TYPE TABLE OF bapi_network_comp_detail,
ls_components_detail TYPE bapi_network_comp_detail,
lt_components_remove TYPE TABLE OF bapi_network_comp_id WITH HEADER LINE,
lt_components_change TYPE TABLE OF bapi_network_comp_change WITH HEADER LINE,
lt_components_change_update TYPE TABLE OF bapi_network_comp_cng_upd WITH HEADER LINE. CALL FUNCTION 'BAPI_PS_INITIALIZATION'. "------------------------ADD----------------------------
LOOP AT lt_zin INTO ls_in.
lv_number = ls_in-aufnr."网络编号 CLEAR:ls_components.
ls_components-activity = ls_in-vornr."活动编号
ls_components-material = ls_in-matnr."物料编码
ls_components-plant = ls_in-werks."工厂
ls_components-entry_quantity = ls_in-bdmng."需求数量
* ls_components-base_uom = ls_in-VORNR."工厂
ls_components-req_date = ls_in-bdter."需求日期
ls_components-cost_relevant = 'X'."与成本核算相关标识 ls_components-item_cat = 'L'."项目类别
CASE ls_in-zqdlx.
WHEN 'G1'.
ls_components-type_of_pur_resv = '7'."生成WBS元素的初步采购需求
WHEN 'G2'.
READ TABLE lt_marc INTO DATA(ls_marc) WITH KEY matnr = ls_in-matnr werks = ls_in-werks.
IF ls_marc-sbdkz = '' OR ls_marc-sbdkz = '1'.
ls_components-type_of_pur_resv = '8'."生成WBS预留
ELSEIF ls_marc-sbdkz = '2'.
ls_components-type_of_pur_resv = '3'."生成网络预留
ENDIF.
WHEN 'G3'.
ls_components-type_of_pur_resv = '1'."网络的采购需求
ls_components-item_cat = 'N'."项目类别
WHEN OTHERS.
ENDCASE. ls_components-mrp_relevant = '3'."预留相关性/生成采购申请(立即)
ls_components-item_text = ls_in-zbz."长文本
APPEND ls_components TO lt_components. MOVE-CORRESPONDING ls_in TO ls_out.
APPEND ls_out TO lt_zout.
ENDLOOP. CALL FUNCTION 'BAPI_NETWORK_COMP_ADD'
EXPORTING
number = lv_number
IMPORTING
return = lv_return
TABLES
i_components_add = lt_components
e_message_table = lt_message_table.
"-----------------------------------------@斌将军--------------------------------------------
二、获取组件列表
"-----------------------------------------@斌将军--------------------------------------------
lv_number = ls_in-aufnr. CLEAR:lt_components_list[],lv_return.
CALL FUNCTION 'BAPI_NETWORK_COMP_GETLIST'
EXPORTING
number = lv_number
* MAX_ROWS = 0
IMPORTING
return = lv_return
TABLES
i_activity_range = lt_activity
e_components_list = lt_components_list.
"-----------------------------------------@斌将军--------------------------------------------
三、获取组件详细信息
"-----------------------------------------@斌将军--------------------------------------------
lv_number = ls_in-aufnr.
"获取详细信息
CLEAR:lv_return,lt_components_detail[].
CALL FUNCTION 'BAPI_NETWORK_COMP_GETDETAIL'
EXPORTING
number = lv_number
* MAX_ROWS = 0
IMPORTING
return = lv_return
TABLES
i_activity_range = lt_activity
i_components_id = lt_components_id
e_components_detail = lt_components_detail.
"-----------------------------------------@斌将军--------------------------------------------
四、修改组件信息
"-----------------------------------------@斌将军--------------------------------------------
"修改组件数量
CALL FUNCTION 'BAPI_PS_INITIALIZATION'. lt_components_change-component = ls_list-component."详细信息BAPI获取到的组件唯一标识
lt_components_change-entry_quantity = lv_syxqsl.
lt_components_change-item_text = ls_in-zbz.
APPEND lt_components_change. lt_components_change_update-component = ls_list-component.
lt_components_change_update-entry_quantity = 'X'.
lt_components_change_update-item_text = 'X'.
APPEND lt_components_change_update. IF lt_components_change[] IS NOT INITIAL.
CLEAR:lv_return,lt_message_table[].
CALL FUNCTION 'BAPI_NETWORK_COMP_CHANGE'
EXPORTING
number = lv_number
IMPORTING
return = lv_return
TABLES
i_components_change = lt_components_change
i_components_change_update = lt_components_change_update
e_message_table = lt_message_table. CLEAR:lv_message.
LOOP AT lt_message_table WHERE message_type CA 'EAX'.
lv_check = 'E'.
lv_message = lv_message && lt_message_table-message_text.
ENDLOOP.
ENDIF.
"-----------------------------------------@斌将军--------------------------------------------
五、移除组件
"-----------------------------------------@斌将军--------------------------------------------
lt_components_remove-component = ls_list-component."添加到移除内表
APPEND lt_components_remove. IF lt_components_remove[] IS NOT INITIAL.
CLEAR:lv_return,lt_message_table[].
CALL FUNCTION 'BAPI_NETWORK_COMP_REMOVE'
EXPORTING
number = lv_number
IMPORTING
return = lv_return
TABLES
i_components_remove = lt_components_remove
e_message_table = lt_message_table.
ENDIF.
"-----------------------------------------@斌将军--------------------------------------------
六、同时提交修改和移除BAPI,删除采购申请失败
业务场景中需要保证修改和移除操作同时成功和失败,需要同时COMMIT提交,这就会导致一下情况:
1.先修改后移除,COMMIT,修改成功,移除成功,删除组件对应的采购申请失败
2.先移除后修改,COMMIT,修改失败,移除成功,删除组件对应的采购申请成功
综合考虑,采用第一种方式,对于删除采购申请失败,则调用同步程序RLORD035,同步删除采购申请。
因为该程序修改会弹出文本界面,在接口中会导致接口中断,所以复制为ZRLORD035,将WRITE的文本全部注释,测试满足需求。
"-----------------------------------------@斌将军--------------------------------------------
REFRESH:s_banfn.
LOOP AT lt_eban.
s_banfn-sign = 'I'.
s_banfn-option = 'EQ'.
s_banfn-low = lt_eban-banfn.
APPEND s_banfn.
ENDLOOP. SUBMIT zrlord035"调用采购申请不符项,将删除数据同步到采购申请,这样采购申请就会被打上删除标识
WITH p_reqs IN s_banfn
WITH sim = ''
WITH set_del = 'X'
AND RETURN.
"-----------------------------------------@斌将军--------------------------------------------
定期更文,欢迎关注

- 中文(简体)
- 中文(繁体)
- 丹麦语
- 乌克兰语
- 乌尔都语
- 亚美尼亚语
- 俄语
- 保加利亚语
- 克罗地亚语
- 冰岛语
- 加泰罗尼亚语
- 匈牙利语
- 卡纳达语
- 印地语
- 印尼语
- 古吉拉特语
- 哈萨克语
- 土耳其语
- 威尔士语
- 孟加拉语
- 尼泊尔语
- 布尔语(南非荷兰语)
- 希伯来语
- 希腊语
- 库尔德语
- 德语
- 意大利语
- 拉脱维亚语
- 挪威语
- 捷克语
- 斯洛伐克语
- 斯洛文尼亚语
- 旁遮普语
- 日语
- 普什图语
- 毛利语
- 法语
- 波兰语
- 波斯语
- 泰卢固语
- 泰米尔语
- 泰语
- 海地克里奥尔语
- 爱沙尼亚语
- 瑞典语
- 立陶宛语
- 缅甸语
- 罗马尼亚语
- 老挝语
- 芬兰语
- 英语
- 荷兰语
- 萨摩亚语
- 葡萄牙语
- 西班牙语
- 越南语
- 阿塞拜疆语
- 阿姆哈拉语
- 阿尔巴尼亚语
- 阿拉伯语
- 韩语
- 马尔加什语
- 马拉地语
- 马拉雅拉姆语
- 马来语
- 马耳他语
- 高棉语
一律不翻译英语
一律不翻译i.cnblogs.com
PS组件相关BAPI的更多相关文章
- 【目录】Newlife XCode组件相关文章目录
本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.Newlife XCode组件相关文章目录 1.Newlife XCode组件资源目录汇总[2013年版] 2.Newlife ...
- SpringCloud组件相关
一.前言 原文地址:https://mp.weixin.qq.com/s/mwn2X0G9UgUDz1sgGgL1mA 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但 ...
- HubbleDotNet开源全文搜索组件相关资源
系统简介 HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件.开源协议是 Apache 2.0.HubbleDotNet提供了基于SQL的全文检索接口,使 ...
- react中受控组件相关的warning
在表单中,报如下的错,意思是非受控的输入框变成了受控的,报错信息如下 Warning: A component is changing an uncontrolled input of type te ...
- VUE组件相关总结!
定义使用一个组件 <!doctype html> <html lang="en"> <head> <meta charset=" ...
- TR-银行主数据相关BAPI
BAPI_BANKDETAIL_CREATE FI01:BAPI_BANK_CREATE FI12:BAPI_HOUSE_BANK_REPLICATE 1011 Business Object Ban ...
- Rigidbody组件及相关API
Rigidbody:刚体组件,物理类.(与Rigidbody组件相关的代码尽量都写在FixedUpdate()方法中,如果写在Update()中有可能会卡顿) 属性:Mass:质量. ...
- 谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo
前言 前端已经过了单兵作战的时代了,现在一个稍微复杂一点的项目都需要几个人协同开发,一个战略级别的APP的话分工会更细,比如携程: 携程app = 机票频道 + 酒店频道 + 旅游频道 + ..... ...
- 业务对象和BAPI
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 关于vue组件的一个小结
用vue进行开发到目前为止也有将近一年的时间了,在项目技术选型的时候隔壁组选 react的时候我们坚持使用vue作为前端的开发框架.虽然两者思想上的差异不大,但是vue的语法在代码的可读性以及后期的维 ...
随机推荐
- mutable关键词
类中的 mutable mutable 从字面意思上来说,是「可变的」之意. 若是要「顾名思义」,那么这个关键词的含义就有些意思了.显然,「可变的」只能用来形容变量,而不可能是「函数」或者「类」本身. ...
- go 上下文:context.Context
Go语言中的上下文(Context)是一种用于在 Goroutines 之间传递取消信号.截止时间和其他请求范围值的标准方式.context 包提供了 Context 类型和一些相关的函数,用于在并发 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-31-JavaScript的调用执行-上篇
1.简介 在做web自动化时,有些情况playwright的api无法完成以及无法应对,需要通过或者借助第三方手段比如js来完成实现,比如:去改变某些元素对象的属性或者进行一些特殊的操作,本文讲解pl ...
- Intellij IDEA开发Scala程序
前言 Intellij IDEA是一款功能强大的集成开发环境(IDE),可用于开发各种编程语言,包括Scala.Scala是一种功能强大的静态类型编程语言,它结合了面向对象和函数式编程的特性. 本文我 ...
- 线性代数导论MIT第二章知识点上
线性代数导论MIT第二章求解线性方程组 2.1--2.2知识点 1.向量与线性方程组 2.不同角度看方程式 也就是矩阵的乘法原型: 以行来看方程式就是原式 以列来看方程式 以矩阵来看方程式 3.消元法 ...
- 中间件IIS监控指标、配置和Windbg调试分析
1. 关键性能计数器指标 a. Web服务(W3SVC)性能计数器 当前连接数(Current Connections):显示当前所有HTTP连接的数量.过高的数值可能表明网站流量过大或连接无法及时释 ...
- C与Verilog差别
C没有时钟概念,Verilog有时钟边沿触发. C无建立保持时间要求,Verilog要计算建立保持时间,并进行优化 C与工艺无关,Verilog依赖底层工艺cell,相同代码不同cell差异较大. V ...
- [ABC245G] Foreign Friends
Problem Statement There are $N$ people and $K$ nations, labeled as Person $1$, Person $2$, $\ldots$, ...
- 5分钟搞懂Kubernetes:轻松理解所有组件
之前我曾经提到了一系列关于服务网格的内容.然而,我意识到有些同学可能对Kubernetes的了解相对较少,更不用说应用服务网格这个概念了.因此,今天我决定带着大家快速理解Kubernetes中的一些专 ...
- Critical error detected c0000374
我发现出现上述错误是 free 两次内存 float* dd=new float[2]; delete[] dd; delete[] dd;