首页 > 其他分享 >ABAP-CS01BOM批导

ABAP-CS01BOM批导

时间:2023-05-13 16:22:16浏览次数:29  
标签:lt bomgroup item ABAP 批导 CS01BOM variants TYPE ls

  1 FUNCTION zfm_pp_0002.
  2 *"----------------------------------------------------------------------
  3 *"*"本地接口:
  4 *"  IMPORTING
  5 *"     VALUE(IV_TEST) TYPE  CHAR1 OPTIONAL
  6 *"  EXPORTING
  7 *"     VALUE(EV_TYPE) TYPE  CHAR1
  8 *"     VALUE(EV_MESSAGE) TYPE  CHAR255
  9 *"     VALUE(EV_BOMNO) TYPE  STNUM
 10 *"  TABLES
 11 *"      TI_INPUT STRUCTURE  ZSPP_0002 OPTIONAL
 12 *"----------------------------------------------------------------------
 13 
 14   DATA:lt_return   TYPE TABLE OF bapiret2,
 15        ls_return   TYPE bapiret2,
 16        lt_bomgroup TYPE TABLE OF bapi1080_bgr_c,
 17        ls_bomgroup TYPE bapi1080_bgr_c,
 18        lt_variants TYPE TABLE OF bapi1080_bom_c,
 19        ls_variants TYPE bapi1080_bom_c,
 20        lt_mare     TYPE TABLE OF bapi1080_mbm_c,
 21        ls_mare     TYPE bapi1080_mbm_c,
 22        lt_item     TYPE TABLE OF bapi1080_itm_c,
 23        ls_item     TYPE bapi1080_itm_c,
 24        lt_items    TYPE TABLE OF bapi1080_rel_itm_bom_c,
 25        ls_items    TYPE bapi1080_rel_itm_bom_c,
 26        ls_testrun  TYPE bapiflag.
 27 
 28   REFRESH lt_bomgroup .
 29   REFRESH lt_return .
 30   REFRESH lt_variants .
 31   REFRESH lt_mare .
 32   REFRESH lt_item .
 33   REFRESH lt_items .
 34 
 35   LOOP AT ti_input ASSIGNING FIELD-SYMBOL(<fs_input>) .
 36 
 37     AT FIRST .
 38 
 39       CLEAR ls_bomgroup .
 40       ls_bomgroup-bom_group_identification = 'BAPI_SMP_COL1'.
 41       ls_bomgroup-object_type = 'BGR'.
 42       ls_bomgroup-object_id = 'SIMPLE1'.
 43       ls_bomgroup-bom_usage = <fs_input>-stlan. "
 44       ls_bomgroup-created_in_plant = <fs_input>-werks .
 45       ls_bomgroup-ltxt_lang = sy-langu.
 46       ls_bomgroup-technical_type = ''."技术类型
 47       ls_bomgroup-bom_text  = ''."物料清单描述
 48       APPEND ls_bomgroup TO lt_bomgroup .
 49 
 50       CLEAR ls_variants .
 51       ls_variants-bom_group_identification = 'BAPI_SMP_COL1'.
 52       ls_variants-object_type = 'BOM'.
 53       ls_variants-object_id = 'SIMPLE1'.
 54       ls_variants-alternative_bom = <fs_input>-stlal .
 55       ls_variants-bom_status = <fs_input>-stlst .
 56       ls_variants-base_qty = <fs_input>-bmeng .
 57       ls_variants-valid_from_date = <fs_input>-datuv .
 58       ls_variants-alt_text = <fs_input>-stktx .
 59       ls_variants-base_unit = <fs_input>-bmein .
 60       ls_variants-change_no = <fs_input>-aennr .
 61       ls_variants-function = 'NEW'.
 62       APPEND ls_variants TO lt_variants .
 63 
 64       CLEAR ls_mare .
 65       ls_mare-bom_group_identification = 'BAPI_SMP_COL1'.
 66       ls_mare-material = <fs_input>-matnr .
 67       ls_mare-plant = <fs_input>-werks .
 68       ls_mare-bom_usage = <fs_input>-stlan .
 69       ls_mare-alternative_bom = <fs_input>-stlal .
 70       APPEND ls_mare TO lt_mare .
 71 
 72     ENDAT .
 73 
 74     CLEAR ls_item .
 75     SELECT SINGLE sanfe,
 76       sanko,
 77       sanka,
 78       sanin,
 79       erskz,
 80       rvrel
 81       INTO ( @ls_item-prod_rel ,
 82       @ls_item-eng_rel,
 83       @ls_item-cost_rel,
 84       @ls_item-pm_rel,
 85       @ls_item-spare_part,
 86       @ls_item-sales_rel )
 87       FROM t416v
 88       WHERE stlan = @<fs_input>-stlan .
 89     ls_item-bom_group_identification = 'BAPI_SMP_COL1'.
 90     ls_item-object_type = 'ITM'.
 91     ls_item-object_id = 'SIMPLE1'.
 92     ls_item-item_no = <fs_input>-posnr .
 93     ls_item-item_cat = <fs_input>-postp .
 94     ls_item-component = <fs_input>-idnrk .
 95     ls_item-comp_qty = <fs_input>-menge .
 96     ls_item-comp_unit = <fs_input>-meins .
 97     ls_item-comp_scrap = <fs_input>-ausch .
 98     ls_item-iss_st_loc = <fs_input>-lgort .
 99     ls_item-co_product = <fs_input>-kzkup .
100     ls_item-alt_item_group = <fs_input>-alpgr .
101     ls_item-alt_item_prio = <fs_input>-alprf .
102     ls_item-usage_prob = <fs_input>-ewahr .
103     ls_item-alt_item_strategy = <fs_input>-alpst .
104     ls_item-cost_rel = <fs_input>-sanka .
105     ls_item-bulk_mat = <fs_input>-schgt .
106     ls_item-sort_string = <fs_input>-sortf .
107     ls_item-valid_from_date = <fs_input>-datuv .
108     ls_item-fixed_qty = <fs_input>-fmeng .
109     ls_item-item_text1 = <fs_input>-potx1 .
110     ls_item-item_text2 = <fs_input>-potx2 .
111     ls_item-opr_scrap = <fs_input>-avoau .
112     ls_item-net_scrap_ind = <fs_input>-netau .
113     ls_item-change_no = <fs_input>-aennr .
114     ls_item-ltxt_lang = sy-langu.
115     APPEND ls_item TO lt_item .
116 
117     CLEAR lt_items.
118     ls_items-bom_group_identification = 'BAPI_SMP_COL1'.
119     ls_items-sub_object_type = 'ITM'.
120     ls_items-sub_object_id = 'SIMPLE1'.
121     ls_items-super_object_type = 'BOM'.
122     ls_items-super_object_id = 'SIMPLE1'.
123     ls_items-valid_from_date = <fs_input>-datuv .
124     ls_items-function = 'NEW'.
125     APPEND ls_items TO lt_items.
126 
127     AT LAST .
128 
129       ls_testrun-bapiflag = iv_test .
130       CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'
131         EXPORTING
132           testrun           = ls_testrun
133 *         ALL_ERROR         = 'X'
134         TABLES
135           bomgroup          = lt_bomgroup
136           variants          = lt_variants
137           items             = lt_item
138 *         SUBITEMS          =
139           materialrelations = lt_mare
140           itemassignments   = lt_items
141 *         SUBITEMASSIGNMENTS       =
142 *         TEXTS             =
143           return            = lt_return.
144 
145       IF line_exists( lt_return[ type = 'E' ] )
146         OR line_exists( lt_return[ type = 'A' ] )  .
147 
148         CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
149         ev_type = 'E' .
150 
151         LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A' .
152 
153           ev_message = ls_return-message && ';' && ev_message .
154 
155         ENDLOOP .
156 
157       ELSE .
158 
159         IF iv_test = 'X' .
160           CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
161         ELSE .
162           CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
163             EXPORTING
164               wait = 'X'.
165           READ TABLE lt_return INTO ls_return INDEX 1 .
166           IF sy-subrc = 0 .
167             ev_bomno = ls_return-message_v2+0(8) .
168           ENDIF .
169         ENDIF .
170         ev_type = 'S' .
171 
172       ENDIF .
173 
174     ENDAT .
175 
176   ENDLOOP .
177 
178 ENDFUNCTION.

标签:lt,bomgroup,item,ABAP,批导,CS01BOM,variants,TYPE,ls
From: https://www.cnblogs.com/TigerMan/p/17397590.html

相关文章

  • ABAP read_text 使用 快速开始
    DATA : lv_name TYPE thead-tdname.PERFORM frm_read_text USING '0001' lv_name 'RBKP' CHANGING <fs_itab>-zfpdz. *&---------------------------------------------------------------------**& Form frm_read_text*&----------......
  • ABAP 根据批次特性获取描述 快速开始
    TYPES:BEGIN OF ty_inob,        matnr TYPE mara-matnr,        charg TYPE mchb-charg,        objek TYPE inob-objek,        cuobj TYPE inob-cuobj,      END OF ty_inob. DATA:gt_inob TYPE TABLE OF ty_inob, ......
  • ABAP save_text 使用 快速开始
    业务背景,保存MIR7的注释字段   PERFORM frm_save_note USING lv_invno lv_year  <fs_itab>-zfpdz. *&---------------------------------------------------------------------**& Form frm_save_note*&------------------------------------------------------......
  • ABAP创建OA流程,日期格式问题
    1.代码:DATA:lv_dateTYPEd.DATA:lv_datestringTYPEstring."传到OA的日期,如2023-01-09lv_date=sy-datum.CONCATENATElv_date+0(4)lv_date+4(2)lv_date+6(2)INTOlv_datestringSEPARATEDBY'-'.ls_main1-field_name='CJSJ'.ls_main1-......
  • ABAP 遍历内表数据的时候,加上前端筛选条件
    1.前端查询条件*----------------------------------------------------------------------**选择屏幕*----------------------------------------------------------------------*SELECTION-SCREENBEGINOFBLOCKb1WITHFRAMETITLETEXT-001.SELECT-OPTIONS:"PARA......
  • ABAP_搜索帮助
    ALV引用标准搜索帮助ls_fieldcat-ref_table ='EKKO'.ls_fieldcat-ref_field ='BSART'.ls_fieldcat-edit ='X'  这样就行了,但是有时候会出现校验值不存在的报错这时给ls_fieldcat-no_init_ch ='A'加一个就行了   ......
  • 关于ABAP索引
    1、什么是索引如果把数据库表看做一本书,索引就可以看做书的检索目录。目录中包含书中的大小标题(部分字段数据),并且有对应的数据表条目的页码(指针),可以快速的访问数据库表中对应行的所有字段内容一个表中包含一个主索引和多个二级索引主索引:是系统根据表关键字自动创建的,用户不需要创......
  • ABAP:EKBE采购凭证历史更新增强
    EKBE采购凭证历史更新增强:函数:ME_UPDATE_GOODS_RECEIPT使用隐式增强更新tekbe表字段~ ......
  • ABAP查询界面日期范围未选择值,则查询前一天的数据
    包含TOP的查询条件:SELECT-OPTIONS:p_bldatFORekbe-bldat."凭证日期包含FORM的代码:RANGES:date_rangeFORekbe-bldat.IFp_bldat[]ISINITIAL.date_range-sign='I'.date_range-option='BT'.date_range-low=sy-datum-1.da......
  • 介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法
    @目录ABAP代码搜索工具:ABAP报表RS_ABAP_SOURCE_SCAN实际工作中的一个需求:找到SAPCRM产品主数据搜索实现里使用了OPENCURSOR关键字的准确位置笔者曾经写过一篇文章,介绍了如何根据ABAP错误消息找到准确的抛出该错误消息的代码位置:SAP错误消息调试之七种武器:让所有的错误......