首页 > 其他分享 >使用BAPI_NETWORK_COMP_*实现生产订单组件的增删改查

使用BAPI_NETWORK_COMP_*实现生产订单组件的增删改查

时间:2023-10-07 19:00:57浏览次数:45  
标签:BAPI NETWORK COMP lv lt ls components message TYPE

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、组件新增

新增组件

"--------------------@斌将军--------------------
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.
"--------------------@斌将军--------------------

 

定期更文,欢迎关注

 

 

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back     此页面的语言为英语   翻译为中文(简体)        
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语
 

标签:BAPI,NETWORK,COMP,lv,lt,ls,components,message,TYPE
From: https://www.cnblogs.com/BinGeneral/p/17747192.html

相关文章

  • 洛谷355BAJ-Bytecomputer8
    这一道题如果直接做是没有什么思路的,所以我们合理猜测应该是有什么结论看这个数列最开始就只有三个值,所以我们猜测最后也只有这三个值下面是证明首先第一个数最小是-1,所以所有数的下界是-1其次如果存在某一个数大于1,我们找到这个数列最前面的这个数,那他前面的数肯定是1,然后对......
  • Go - Composing Structs from Other Structs
    Problem: Youwantastructthathasdataandmethodsofanotherstruct. Solution: Embedanunnamedstructwithinanotherstruct.Theouterstructwillgainthedataandmethodsoftheinnerstruct. Inheritanceisnottheonlymechanismyoucanusefor......
  • vue3中defineComponent 的作用详解
    转自:https://www.jb51.net/article/263096.htm 这篇文章主要介绍了vue3中defineComponent 的作用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 vue3中,新增了defineComponent,它并没有实现任何的逻辑,只是把接收的......
  • [已解决] Compilation error ptxas fatal : Value ‘sm_30‘ is not defined for opti
    在用cmake编译cuda程序时,总是报Compilationerrorptxasfatal:Value‘sm_30’isnotdefinedforoption‘gpu-name’问题,也是折腾了好久,感谢这位小哥的解决方案,亲试无误,万分感谢~转载:https://blog.csdn.net/Fucking_Code0916/article/details/132429186安装tiny-cudann出......
  • webapi 登录接口acctID参数获取SQL
    USEK3DBConfiger20216155555176selectA.FNUMBER,B.FNAME,A.FDATABASENAME,A.FDATACENTERIDFROMT_BAS_DATACENTERASALEFTJOINT_BAS_DATACENTER_LASBONA.FDATACENTERID=B.FDATACENTERIDANDA.FLANGUAGE=B.FLOCALEID FDATACENTERID字段......
  • docker-compose deploy 高可用 elasticsearch TLS
    文章目录1.sysctl2.swap3.hosts4.配置instances.yaml5.创建证书6.部署7.修改kibanna密码8.清理1.sysctl[root@githubes_tls]#cat/etc/sysctl.conf#sysctlsettingsaredefinedthroughfilesin#/usr/lib/sysctl.d/,/run/sysctl.d/,and/etc/sysctl.d/.##......
  • styled-components & CSS pseudo classes All In One
    styled-components&CSSpseudoclassesAllInOne::after&::beforeCSS伪元素constListItem=styled.li`font-size:70px;font-weight:bold;cursor:pointer;color:transparent;-webkit-text-stroke:1pxwhite;position:relative;&......
  • 【图论】【寻找性质】CF1151E Number of Components 题解
    CF1151E发现每一个\(f(l,r)\)中的连通块总是一条链(一棵树)。那么此时连通块的数量就等于点的数量减去边的数量。先考虑点的总数,一个价值为\(a_i\)的点一定是在\(l\leqslanta_i\)且\(r\geqslanta_i\)的\(f(l,r)\)中才会有一个贡献,根据乘法原理,它会产生\(a_i\time......
  • 题解 P9702【[GDCPC2023] Computational Geometry】
    这题一看就不是计算几何,考虑区间DP。设凸多边形的\(n\)个顶点依次为\(P_1,P_2,\cdots,P_n\)。设\(f_{i,j}\)在\(i<j\)时表示\(P_i,P_{i+1},\cdots,P_{j-1},P_j\)组成的多边形的直径的平方,在\(i>j\)时表示\(P_i,P_{i+1},\cdots,P_n,P_1,\cdots,P_{j-1},P_j\)组......
  • [Compose] Asynchronous Reactive Data with Promises
    Let’smakeusingtheobserversasynchronous!Thiswaywecanupdatethedataandhavemultipleobserversrunasynchronously.classAsyncData{constructor(initialData){this.data=initialData;this.subscribers=[];}//Subscribetochan......