1、文档说明

对于生产订单组件的增删改有多种办法,比较常用的有使用内部函数CO_XT_COMPONENT_*,有改造BAPI_ALM_ORDER_MAINTAIN来实现,各有千秋。

本文档介绍,通过PS的BAPI_NETWORK_COMP_*系列BAPI,来实现常见的组件先删后建的覆盖式操作,组件部分字段修改,组件信息查询等功能

2、BAPI用法

2.1、组件列表查询

查询组件基本数据

"--------------------@斌将军--------------------
DATA:lv_number TYPE bapi_network_list-network,
ls_return TYPE bapiret2,
lt_activity TYPE TABLE OF bapi_network_comp_act_rng,
lt_components_list TYPE TABLE OF bapi_network_comp_list. lv_number = '000001001211'."工单号 CALL FUNCTION 'BAPI_NETWORK_COMP_GETLIST'
EXPORTING
number = lv_number
* MAX_ROWS = 0
IMPORTING
return = ls_return
TABLES
i_activity_range = lt_activity
e_components_list = lt_components_list.
"--------------------@斌将军--------------------

2.2、组件列表详细信息查询

查询组件详细的数据

"--------------------@斌将军--------------------
DATA:lv_number TYPE bapi_network_list-network,
lt_detail TYPE TABLE OF bapi_network_comp_detail. lv_number = '000001001211'."工单号 CALL FUNCTION 'BAPI_NETWORK_COMP_GETDETAIL'
EXPORTING
number = lv_number
TABLES
e_components_detail = lt_detail.
"--------------------@斌将军--------------------

2.3、组件删除

移除组件

"--------------------@斌将军--------------------
DATA:lv_number TYPE bapi_network_list-network,
lt_remove TYPE TABLE OF bapi_network_comp_id,
ls_remove TYPE bapi_network_comp_id,
lt_message TYPE TABLE OF bapi_meth_message,
ls_message TYPE bapi_meth_message. DATA:lv_check TYPE char1,
lv_message TYPE char255. "此处使用查询BAPI得到的组件列表,赋值给移除内表
LOOP AT lt_detail INTO ls_detail.
CLEAR ls_remove.
ls_remove-component = ls_detail-component.
APPEND ls_remove TO lt_remove.
ENDLOOP. lv_number = '000001001211'."工单号 CALL FUNCTION 'BAPI_NETWORK_COMP_REMOVE'
EXPORTING
number = lv_number
TABLES
i_components_remove = lt_remove
e_message_table = lt_message. LOOP AT lt_message INTO ls_message WHERE message_type CA 'AEX'.
lv_check = 'E'.
lv_message = lv_message && ls_message-message_text.
ENDLOOP. IF lv_check = 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
ENDIF.
"--------------------@斌将军--------------------

2.4、组件新增

新增组件,LCNIF_MATF27做移动类型增强

参考代码

"--------------------@斌将军--------------------
DATA:lv_number TYPE bapi_network_list-network,
lt_components TYPE TABLE OF bapi_network_comp_add,
ls_components TYPE bapi_network_comp_add,
lt_message TYPE TABLE OF bapi_meth_message,
ls_message TYPE bapi_meth_message. DATA:lv_check TYPE char1,
lv_message TYPE char255. lv_number = '000001001211'."工单号 ls_components-item_number = '0030'."项目编号
ls_components-activity = '0010'."必输 作业
ls_components-material = '000000000003000135'."物料
ls_components-plant = 'P010'."工厂
ls_components-type_of_pur_resv = 'F'."beskz."必输 采购类型
ls_components-entry_quantity = 1."数量
ls_components-base_uom = 'KG'."单位
ls_components-backflush = 'X'."反冲
*ls_components-batch = ''."批次
ls_components-item_cat = 'L'."项目类别
APPEND ls_components TO lt_components. CALL FUNCTION 'BAPI_PS_INITIALIZATION'.
CALL FUNCTION 'BAPI_NETWORK_COMP_ADD'
EXPORTING
number = lv_number
TABLES
i_components_add = lt_components
e_message_table = lt_message. LOOP AT lt_message INTO ls_message WHERE message_type CA 'AEX'.
lv_check = 'E'.
lv_message = lv_message && ls_message-message_text.
ENDLOOP. IF lv_check = 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
ENDIF.
"--------------------@斌将军--------------------

2.5、组件修改

修改组件的数量和反冲标识。

其中修改工序时,同时修改反冲标识会不起作用,这个需要注意

"--------------------@斌将军--------------------
DATA:lv_number TYPE bapi_network_list-network,
ls_return TYPE bapiret2,
lt_components_change TYPE TABLE OF bapi_network_comp_change,
ls_components_change TYPE bapi_network_comp_change,
lt_components_change_update TYPE TABLE OF bapi_network_comp_cng_upd,
ls_components_change_update TYPE bapi_network_comp_cng_upd,
lt_message TYPE TABLE OF bapi_meth_message,
ls_message TYPE bapi_meth_message. DATA:lv_check TYPE char1,
lv_message TYPE char255. lv_number = '000001001211'."工单号 CLEAR:ls_components_change.
ls_components_change-component = '00000039290006'."BAPI获取到的组件唯一标识
*ls_components_change-activity = '0020'."工序
ls_components_change-entry_quantity = 2."数量
ls_components_change-backflush = ''."反冲
APPEND ls_components_change TO lt_components_change. CLEAR:ls_components_change_update.
ls_components_change_update-component = '00000039290006'.
*ls_components_change_update-activity = 'X'.
ls_components_change_update-entry_quantity = 'X'.
ls_components_change_update-backflush = 'X'.
APPEND ls_components_change_update TO lt_components_change_update. CALL FUNCTION 'BAPI_PS_INITIALIZATION'.
CALL FUNCTION 'BAPI_NETWORK_COMP_CHANGE'
EXPORTING
number = lv_number
IMPORTING
return = ls_return
TABLES
i_components_change = lt_components_change
i_components_change_update = lt_components_change_update
e_message_table = lt_message. LOOP AT lt_message INTO ls_message WHERE message_type CA 'AEX'.
lv_check = 'E'.
lv_message = lv_message && ls_message-message_text.
ENDLOOP. IF lv_check = 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
ENDIF.
"--------------------@斌将军--------------------

定期更文,欢迎关注

 
 
 
 
此页面的语言为英语
 
翻译为中文(简体)
 
 
 
 
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语
 
随时将英语翻译为中文(简体)PRO
一律不翻译英语
一律不翻译i.cnblogs.com

使用BAPI_NETWORK_COMP_*实现生产订单组件的增删改查的更多相关文章

  1. 【ActionScript】ActionScript3.0对舞台组件的增删改查

    以一个样例来说明ActionScript3.0对舞台组件的增删改查 例如以下图: 在Flash执行的时候,通过脚本.斜向下生成text0-text9十个文本节点. 提供两个功能. 1.在右上角,用户输 ...

  2. 模拟admin组件自己开发stark组件之增删改查

    增删改查,针对视图 我们需要modelform来创建,可自动生成标签,我们还要考虑用户是不是自己定制,依然解决方法是,继承和重写 app01下的joker.py文件 class BookModelFo ...

  3. VUE2.0增删改查附编辑添加model(弹框)组件共用

    Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue- ...

  4. PP篇11 增、改生产订单组件BAPI

    增.改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN USE BAPI_ALM_ORDER_MAINTAIN TO CREATE OR CHANGE PM WORK ORDER ...

  5. popup的简单应用举例(具体在增删改查组件中用到)以及补充的知识点

    一.首先说一下自执行函数 1. 立即执行函数是什么?也就是匿名函数 立即执行函数就是 声明一个匿名函数 马上调用这个匿名函数 2.popup的举例 点击,弹出一个新的窗口.保存完事,页面不刷新数据就返 ...

  6. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  7. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)

    前言:出于某种原因,需要学习下Knockout.js,这个组件很早前听说过,但一直没尝试使用,这两天学习了下,觉得它真心不错,双向绑定的机制简直太爽了.今天打算结合bootstrapTable和Kno ...

  8. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面

    前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...

  9. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查

    前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...

  10. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(二)

    前言:上篇 JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一) 介绍了下knockout.js的一些基础用法,由于篇幅的关系,所以只能分成两篇,望见谅!昨天就 ...

随机推荐

  1. 手撕Vuex-安装模块方法

    前言 经过上一篇文章的介绍,我们实现了将模块安装到 store 中,那么本章我们就来介绍一下怎么安装模块当中的方法也就是 actions.mutations.getters. 所以本次文章的目标就是将 ...

  2. DOS(Terminal)常用命令

    DOS是一款在20世纪末期流行的操作系统,它是一款面向磁盘的系统软件.它的用途非常广泛,大名鼎鼎的 Windows 98 就是基于它的.DOS依然活跃,比如FreeDOS. cmd是指命令行提示符,是 ...

  3. 写代码不用"if"行不行,曾经的反 if 运动

    如果在IT行业的时间够长的话,可能还记得大约10几年前,设计模式风靡一时的时候,有过一段反 "if" 的运动. 所谓的反"if"运动,其实是夸大了"i ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (143)-- 算法导论12.1 3题

    三.用go语言,设计一个执行中序遍历的非递归算法.(提示:一种容易的方法是使用栈作为辅助数据结构;另一种较复杂但比较简洁的做法是不使用栈,但要假设能测试两个指针是否相等.) 文心一言,代码正常运行: ...

  5. Linux删除‘-’开头的文件

    版权声明:原创作品,谢绝转载!否则将追究法律责任. ----- 作者:kirin 先看两个特殊文件(以--开头) [root@kirin ~]# ll total 0 -rw-r--r-- 1 roo ...

  6. 2. Shell 条件测试

    重点: 条件测试. read. Shell 环境配置. case. for. find. xargs. gzip,bzip2,xz. tar. sed. 1)位置 变量 位置变量:在 bash She ...

  7. Python接口自动化项目----Anan

    优点 本效果展示仅是整体样式功能,更详细的使用方法和优点,需要参考使用手册. 整体的优点包括: 1.测试接口的统一管理 2.支持多环境 3.测试报告展示 4.定时任务 5.支持代码驱动 6.便捷的交互 ...

  8. HTML中的三个列表,具体的使用及列表样式

    HTML有三种列表:## 一.有序列表 有序列表(Ordered lists):用数字或字母来标记列表项,每个列表项前会有一个数字或字母. ```html<ol> <li>列表 ...

  9. 将mysql的输出文本写回mysql

    1 准备工作 1.1 环境准备 操作系统:Microsoft Windows 10 专业工作站版 软件版本:Python 3.9.6 第三方包: pip install pandas2.1.0 pip ...

  10. Git日志的相关操作

    显示日志 最单纯的日志命令 git log 单条显示 git log -条数 # 例如 git log -2 显示两条 提交信息单行输出 git log --oneline 日志图表显示 git lo ...