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的语法在代码的可读性以及后期的维 ...
随机推荐
- 主数据管理系统(MDM)集成方案
在当今社会,数据已成为企业发展的宝贵财富.然而,大多数企业面临着数据散落在多个系统中.无法互相印证和共享的问题,导致数据使用效率低下.为解决这个问题,目前有两种典型途径:建设公司级系统或建立数据共享平 ...
- 【死亡小学期第二章:没头脑和不高兴】数据库jdbc系统
自己做一个JDBC的数据库系统,因为这个一直做嘛,所以很简单啦,并没有想提高技术拔拔高啥的,就想做一个简单的,然后自己感兴趣的内容.让自己快乐快乐那才叫做意义~~~~~~~kkkk 学到的东西: 展示 ...
- 【译】使用 GitHub Copilot 编写 Git 提交
在花费数小时修复 bug 或更新特性之后,我们开发人员最不愿意做的事情往往是仔细说明 Git 提交的内容.最新的 Visual Studio 预览版可以帮到您.使用新的生成 Git 提交消息特性来帮助 ...
- STM32外设:定时器TIM
主要外设: TIM:Timer 定时器 TIM中的基本电路 定时器 计数器的基本功能 复位:计数器值=初值.产生一个输出脉冲.产生更新事件(UEV)脉冲.更新中断标志UIF=1 计数:计数器值递增或递 ...
- 11 HTTP的特点,优点和缺点
[toc] # HTTP的五大特点 # HTTP的优点 1. 最大的优点:简单.灵活和易于拓展 2. 拥有成熟的软硬件环境,应用的非常广泛,是互联网的基础设施 3. 是无状态的,可以轻松实现集群化, ...
- Google Guava提供的特殊的Table集合
1.Table 是个啥? 是一个特殊的映射,其中两个键可以在组合的方式被指定为单个值.它类似于创建映射的映射. 当你想使用多个键做索引的时候,你可能会用类似 Map<rowKey, Map< ...
- ES集群搭建和Kibana管理集群
搭建实例 先复制2份解压后的完整目录,将里面的data和log删除. elasticsearch-6.8.23-node2 elasticsearch-6.8.23-node3 修改3个实例的配置文件 ...
- 【C#】【WinForm】MDI窗体
MDI窗体的相关学习使用 1.设置MDI父窗体 在属性中找到IsMdiContainer选项,设置为True 2.添加MDI子窗体,在项目中依次选择添加->窗体,然后一直默认即可 添加后的项目目 ...
- 整一个工具类【根据URL地址获取file文件对象】
整一个工具类[根据URL地址获取file文件对象] 直接将网络url文件转换为file对象 import java.io.*; import java.net.URL; public class Im ...
- ASR项目实战-语音识别
本文深入探讨语音识别处理环节. 本阶段的重点特性为语音识别.VAD.热词.文本的时间偏移.讲话人的识别等. 语音识别 业界流派众多,比如Kaldi.端到端等,具体选择哪一种,需要综合考虑人员能力.训练 ...