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. C#12中的Collection expressions(集合表达式语法糖)

    C#12中引入了新的语法糖来创建常见的集合.并且可以使用..来解构集合,将其内联到另一个集合中. 支持的类型 数组类型,例如 int[]. System.Span<T> 和 System. ...

  2. 方法覆盖Override

    继承作用: 基本作用:代码复用 重要作用:方法覆盖和多态机制 ===================================================================== ...

  3. 七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法(SQLiteHelper)

    前言 上一章节我们搭建好了EasySQLite的前后端框架,今天我们的主要任务是在后端框架中引入SQLite-net ORM并封装常用方法(SQLiteHelper). 七天.NET 8操作SQLit ...

  4. Typora的安装与使用教程

    一.安装 1.下载 下载地址:Typora 官方中文站 二.安装 1.无脑下一步即可. 三.使用教程 1.Typora系统设置 一般导出使用PDF文件比较好,性价比比较高. 2.其他设置 以下所有设置 ...

  5. 关于win11系统修改用户名导致登录进入不了系统的坑

    背景:公司的新电脑,win11系统,开机进入需要注册用户名和密码,在取用户名的时候,手快没注意取了一个中文名,结果这给我后面的工作带来了一个坑,我在用mysqlworkbench进行数据备份,需要对数 ...

  6. [Python急救站]火车购票程序

    火车购票程序 如果要一直执行程序,加个while循环即可.要是要智能判断月份,可以通过调取当前时间进行判断即可. print(""" 1.每年的1-3月和7-9月凭学生证 ...

  7. style绑定及随机颜色

    一个小案例 颜色变换 style单机事件的绑定

  8. Java并发(十九)----Monitor原理及Synchronized原理

    1.Java 对象头 以 32 位虚拟机为例 普通对象 |--------------------------------------------------------------| |       ...

  9. Halo新年灯笼-halonewyaer

    title: Halo新年灯笼 date: 2021-12-29 15:49:34.665 updated: 2022-03-10 16:00:53.189 url: https://www.yby6 ...

  10. ubuntu upgrade problem

    出现问题: W: Failed to fetch bzip2:/var/lib/apt/lists/partial/ppa.launchpad.net_webupd8team_java_ubuntu_ ...