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的语法在代码的可读性以及后期的维 ...
随机推荐
- promise时效架构升级方案的实施及落地
一.项目背景 为什么需要架构升级 promise时效包含两个子系统:内核时效计算系统(系统核心是时效计算)和组件化时效系统(系统核心是复杂业务处理以及多种时效业务聚合,承接结算下单黄金流程流量),后者 ...
- P2360 地下城主
题目大意 背景是逃离\(3D\)地下监狱,也就是三维样例,你可以前往所在小格的前方,后方,左方,右方,上层,下层的小格,'.'表示可走,'x'表示墙壁,'S'表示起点,'E'表示终点.每走一小格花费一 ...
- pnpm 管理依赖包是如何节省磁盘空间的?
npm 存在的问题 我们经常使用 npm 来管理 node 项目中的包,从 package.json 中读取配置将依赖下载到本地,以保障项目的正常运行. 当项目数量多时,这样的包管理方式会非常的占用电 ...
- 增长实验室-ab分流的流量保护功能介绍
介绍ab分流的流量保护功能之前,先普及一下ab分流的一些概念和术语 名词解释: 实验:用来验证某个决定请求处理方式的功能或策略的一部分流量,通常用来验证某个功能或策略对系统指标(如PV/UV,CRT, ...
- python之继承的方法重写
目录 普通方法 方法重写super().xxx() 我们在python之继承及其实现方法中已经学会了打印子类在父类继承的属性 那么我们怎么打印出子类中特有的属性呢 普通方法 我们当然可以在子类中添加新 ...
- Promise规范与原理解析
摘要 Promise对象用于清晰的处理异步任务的完成,返回最终的结果值,本次分享主要介绍Promise的基本属性以及Promise内部的基础实现,能够帮我们更明确使用场景.更快速定位问题. Promi ...
- C#使用SqlSugar操作MySQL数据库实现简单的增删改查
公众号「DotNet学习交流」,分享学习DotNet的点滴. SqlSugar简介 SqlSugar 是一款 老牌 .NET 开源多库架构ORM框架(EF Core单库架构),由果糖大数据科技团队 维 ...
- JAVA学习week1
本周: 认识到Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对 ...
- 国内 AI 成图第一案!你来你会怎么判?
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...
- Http的演进
Http的演进 Http在1.1版本之前具有无状态的特点,每次请求都需要通过TCP三次握手四次挥手与服务器重新建立连接.比如某个客户端在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户请求 ...