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的语法在代码的可读性以及后期的维 ...
随机推荐
- Codeforces Round #736 (Div. 2). D - Integers Have Friends
原题:D - Integers Have Friends 题意: 给定一个数组,求一个最长子数组满足\(a_i \,\, mod \,\, m \,\, = \,\, a_{i + 1} \,\, m ...
- go基础-接口
一.概述 接口是面向对象编程的重要概念,接口是对行为的抽象和概括,在主流面向对象语言Java.C++,接口和类之间有明确关系,称为"实现接口".这种关系一般会以"类派生图 ...
- python列表排序之sort(),sorted()和reverse()
sort() 正序 sort()可以按字母的顺序来对列表进行永久性排序(改变列表自身的排序): list_1 = ['one', 'two', 'three', 'four', 'five'] pri ...
- 基于DotNetty实现自动发布 - 自动检测代码变化
前言 很抱歉没有实现上一篇的目标:一键发布,因为工作量超出了预期,本次只实现了 Git 代码变化检测 已完成的功能 解决方案的项目发现与配置 首次发布需要手动处理 自动检测代码变化并解析出待发布的文件 ...
- [洛谷P5368] [PKUSC2018] 真实排名
[PKUSC2018]真实排名 题目描述 小 C 是某知名比赛的组织者,该比赛一共有 \(n\) 名选手参加,每个选手的成绩是一个非负整数,定义一个选手的排名是:成绩不小于他的选手的数量(包括他自己) ...
- [ARC145B] AB Game
The game is played by Alice and Bob. Initially, there are $n$ stones. The players alternate turns, m ...
- LR(0)分析法
LR(0)是一种自底向上的语法分析方法.两个基本动作是移进和规约. 具体例子如下 已知文法G[E] (1) E→aА (2) E→bB (3) A→cА (4) A→d (5) B→cB (6) B→ ...
- CodeForces - 764C
C. Timofey and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- MD5在文件安全中的应用与重要性
一.MD5简介 MD5(Message-Digest Algorithm 5)是一种广泛应用的密码散列函数,由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)于1992年提出.它主 ...
- Pikachu漏洞靶场 ../../(目录遍历)
目录遍历 概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活.当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行 ...