ABAP-CS01BOM批导
1 TYPES:BEGIN OF ty_data, 2 3 matnr LIKE mast-matnr, "父件物料号 4 zzzcbms TYPE stko-zzzcbms, 5 sqz TYPE stko_api01-auth_group, 6 bmeng TYPE string, "父件基本数量 7 posnr LIKE stpo-posnr, "子项目编号 8 idnrk LIKE stpo-idnrk, "组件物料号 9 menge TYPE string, "组件数量 10 sortf TYPE stpo-sortf, 11 alpgr LIKE stpo-alpgr, "替代组 12 ewahr LIKE stpo-ewahr, "使用概率 13 flg TYPE icon_d, "状态灯 14 message TYPE c LENGTH 200, "错误信息 15 16 END OF ty_data. 17 18 DATA:gt_itab TYPE TABLE OF ty_data WITH HEADER LINE, 19 gs_itab TYPE ty_data. 20 DATA:gv_date TYPE datuv_bi. 21 22 SELECT SINGLE datfm 23 INTO @DATA(lv_datfm) 24 FROM usr01 25 WHERE bname = @sy-uname . 26 27 IF lv_datfm = '1' . 28 29 gv_date = '01.01.1900' . 30 31 ELSEIF lv_datfm = '2' . 32 33 gv_date = '01/01/1900' . 34 35 ELSEIF lv_datfm = '3' . 36 37 gv_date = '01-01-1900' . 38 39 ELSEIF lv_datfm = '4' . 40 41 gv_date = '1900.01.01.' . 42 43 ELSEIF lv_datfm = '5' . 44 45 gv_date = '1900/01/01' . 46 47 ELSEIF lv_datfm = '6' . 48 49 gv_date = '1900-01-01' . 50 51 ELSEIF lv_datfm = '7' . 52 53 gv_date = '01.01.1900' . 54 55 ELSEIF lv_datfm = '8' . 56 57 gv_date = '01.01.1900' . 58 59 ELSEIF lv_datfm = '9' . 60 61 gv_date = '01.01.1900' . 62 63 ELSEIF lv_datfm = 'A' . 64 65 gv_date = '1900/01/01' . 66 67 ELSEIF lv_datfm = 'B' . 68 69 gv_date = '1900/01/01' . 70 71 ELSEIF lv_datfm = 'C ' . 72 73 gv_date = '1900/01/01' . 74 75 ENDIF . 76 77 DATA:ls_stko TYPE stko_api01, 78 ls_stpo TYPE stpo_api01, 79 lt_stpo TYPE TABLE OF stpo_api01, 80 lv_bom_no TYPE stko_api02-bom_no, 81 lv_warning TYPE capiflag-flwarning, 82 lt_line TYPE TABLE OF csltx_line. 83 84 SORT gt_itab BY matnr posnr . 85 86 LOOP AT gt_itab ASSIGNING FIELD-SYMBOL(<fs_itab>) . 87 88 AT NEW matnr . 89 90 CLEAR ls_stko . 91 CLEAR ls_stpo . 92 CLEAR lv_bom_no . 93 REFRESH lt_stpo . 94 95 ls_stko-zzzcbms = <fs_itab>-zzzcbms . 96 ls_stko-base_quan = <fs_itab>-bmeng . 97 ls_stko-bom_status = '01' . 98 ls_stko-base_unit = '' . 99 ls_stko-auth_group = <fs_itab>-sqz . 100 ls_stko-zzzcb = '11' . 101 102 ENDAT . 103 104 CLEAR ls_stpo . 105 106 ls_stpo-item_no = <fs_itab>-posnr . 107 ls_stpo-component = <fs_itab>-idnrk . 108 ls_stpo-comp_qty = <fs_itab>-menge . 109 ls_stpo-sortstring = <fs_itab>-sortf . 110 ls_stpo-ai_group = <fs_itab>-alpgr . 111 ls_stpo-usage_prob = <fs_itab>-ewahr . 112 113 IF ls_stpo-ai_group IS NOT INITIAL . 114 ls_stpo-ai_strateg = '1' . 115 ENDIF . 116 ls_stpo-rel_cost = 'X' . 117 ls_stpo-item_categ = 'L' . 118 ls_stpo-bulk_mat = '' . 119 ls_stpo-comp_unit = '' . 120 APPEND ls_stpo TO lt_stpo . 121 122 AT END OF matnr . 123 124 CALL FUNCTION 'CSAP_MAT_BOM_CREATE' 125 EXPORTING 126 material = <fs_itab>-matnr 127 plant = p_werks 128 bom_usage = p_stlan 129 alternative = '' 130 valid_from = gv_date 131 change_no = '' 132 * REVISION_LEVEL = 133 i_stko = ls_stko 134 * FL_NO_CHANGE_DOC = ' ' 135 * FL_COMMIT_AND_WAIT = ' ' 136 * FL_CAD = ' ' 137 * FL_DEFAULT_VALUES = 'X' 138 * FL_RECURSIVE = ' ' 139 IMPORTING 140 fl_warning = lv_warning 141 bom_no = lv_bom_no 142 TABLES 143 t_stpo = lt_stpo 144 * T_DEP_DATA = 145 * T_DEP_DESCR = 146 * T_DEP_ORDER = 147 * T_DEP_SOURCE = 148 * T_DEP_DOC = 149 t_ltx_line = lt_line 150 * T_STPU = 151 * T_FSH_BOMD = 152 * T_SGT_BOMC = 153 EXCEPTIONS 154 error = 1 155 OTHERS = 2. 156 157 IF lv_bom_no IS INITIAL . 158 159 CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. 160 161 CLEAR gs_itab . 162 163 gs_itab-flg = icon_red_light . 164 MODIFY gt_itab FROM gs_itab TRANSPORTING flg message WHERE matnr = <fs_itab>-matnr. 165 166 ELSE . 167 168 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' 169 EXPORTING 170 wait = 'X'. 171 172 CLEAR gs_itab . 173 gs_itab-flg = icon_green_light . 174 gs_itab-message = '导入成功' . 175 MODIFY gt_itab FROM gs_itab TRANSPORTING flg message WHERE matnr = <fs_itab>-matnr . 176 177 ENDIF . 178 179 ENDAT . 180 181 ENDLOOP .
post SAP-Garson
原文链接:https://www.cnblogs.com/TigerMan/p/16643215.html文章来自于网络,如果侵犯了您的权益,请联系站长删除!