1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
REPORT zmb31. TABLES:mseg, mkpf, rm07m, t158b,t001l, msegk. DATA: mat_doc LIKE bapi2017_gm_head_ret-mat_doc. DATA:save_code LIKE sy-ucomm, ok_code LIKE sy-ucomm, loc_msg(50), gmnga LIKE afru-gmnga, mtsnr LIKE rm07m-mtsnr, errflag.. DATA:BEGIN OF gt_afpo OCCURS 0. INCLUDE STRUCTURE afpo. DATA:END OF gt_afpo. DATA:gmhead LIKE bapi2017_gm_head_01. DATA: BEGIN OF gmcode. INCLUDE STRUCTURE bapi2017_gm_code. DATA: END OF gmcode. DATA: BEGIN OF mthead. INCLUDE STRUCTURE bapi2017_gm_head_ret. DATA: END OF mthead. DATA: BEGIN OF itab OCCURS 100. INCLUDE STRUCTURE bapi2017_gm_item_create. DATA: END OF itab. DATA: BEGIN OF errmsg OCCURS 10. INCLUDE STRUCTURE bapiret2. DATA: END OF errmsg. INITIALIZATION. t001l-lgort = ' BG01'. mseg-lgort = ' BG01'. mseg-werks = '1103'. mkpf-bldat = sy-datum. mkpf-budat = sy-datum. t158b-bwart = '101'. * rm07m-sobkz = ''. "特殊库存 rm07m-werks = '1103'. rm07m-lgort = ' BG01'. mseg-erfme = 'PC'. gmcode-gm_code = '02'. ***********gmcode-gm_code取值含义******* ********01 MB01 ********02 MB31 ********03 MB1A ********04 MB1B ********05 MB1C ********06 MB11 ********07 MB04 gmhead-pstng_date = sy-datum."mkpf-bldat. gmhead-doc_date = sy-datum."mkpf-budat. gmhead-pr_uname = sy-uname. itab-material = '000000003000000098'. itab-plant = '1103'. itab-stge_loc = 'BG01'. itab-move_type = '101'. itab-spec_stock = 'BG01'.. itab-entry_qnt = '6'. itab-entry_uom = 'EA'. itab-po_number = '4500000097'. itab-po_item = '00010'. itab-mvt_ind = 'B'. itab-move_mat = '3000000098'. itab-move_plant = '1103'. itab-move_stloc = 'BG01'. itab-nb_slips = 1. APPEND itab. CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = gmhead goodsmvt_code = gmcode IMPORTING goodsmvt_headret = mthead materialdocument = mat_doc TABLES goodsmvt_item = itab return = errmsg. LOOP AT errmsg. CLEAR loc_msg. CONCATENATE '过帐成功!' errmsg-message INTO loc_msg. IF errmsg-type EQ 'E'. MESSAGE errmsg-message TYPE 'E'. errflag = 'X'. ELSE. MESSAGE loc_msg TYPE 'S'. ENDIF. ENDLOOP. IF errflag IS INITIAL. COMMIT WORK AND WAIT. CLEAR loc_msg. IF sy-subrc NE 0. MESSAGE '过帐操作出现错误,请稍后重试!' TYPE 'E'. EXIT. ELSE. CONCATENATE '物料凭证:' mat_doc '已成功创建!' INTO loc_msg. MESSAGE i000(znyj13) WITH loc_msg. gmhead-ref_doc_no = ''. gmhead-header_txt = ''. mseg-matnr = ''. msegk-mat_kdauf = ''. msegk-mat_kdpos = ''. mseg-erfmg = ''. rm07m-mtsnr = ''. gmnga = ''. mkpf-bktxt = ''. ENDIF. ELSE. MESSAGE '这不是正确的发料单或者已经创建凭证!' TYPE 'E'. ENDIF. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ------------------------------261 /262 生产订单收退料------------------------ report test. *物料凭证的抬头数据 DATA: li_gm_head TYPE STANDARD TABLE OF bapi2017_gm_head_01, l_gm_head LIKE bapi2017_gm_head_01, *为BAPI货物移动分配事务代码 li_gm_code TYPE STANDARD TABLE OF bapi2017_gm_code, l_gm_code LIKE bapi2017_gm_code, *返回单据号码 l_mat_doc LIKE bapi2017_gm_head_ret-mat_doc, *凭证项目 li_gm_item TYPE STANDARD TABLE OF bapi2017_gm_item_create, l_gm_item LIKE bapi2017_gm_item_create, *------------------------- li_return TYPE STANDARD TABLE OF bapiret2, l_return TYPE bapiret2, *Error flag l_errflag(1) TYPE c. *&---------------------------------------------------------------------* *& Form CALLBAPI *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* *填写表头数据 l_gm_head-pstng_date = sy-datum. l_gm_head-doc_date = sy-datum. APPEND l_gm_head TO li_gm_head. *分配事务代码 l_gm_code-gm_code = '03'. APPEND l_gm_code TO li_gm_code. *发货明细 l_gm_item-material = '000000003102000245'. "10 410A l_gm_item-plant = '1201'. l_gm_item-stge_loc = '1006'. l_gm_item-move_type = '261'. "移动类型(库存管理) * l_gm_item-mvt_ind = 'F'. l_gm_item-entry_qnt = '1'. l_gm_item-entry_uom = 'EA'. l_gm_item-orderid = '000010003579'. "MO号 l_gm_item-reserv_no = '0000107118'. "预留/相关需求的编号 RESB~RSNUM l_gm_item-res_item = '0019'. " 预留 / 相关需求的项目编号 RESB~RSPOS * l_gm_item-XSTOB = 'X'. “冲销标志,不修改移动类型261,做完以后也是262;使用262,但此处不设置还是261. gm_code = 03 和 05 此处都是对的,不知道是不是bugger APPEND l_gm_item TO li_gm_item. CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = l_gm_head goodsmvt_code = '03' * RETURN IMPORTING * GOODSMVT_HEADRET = L_MAT_DOC materialdocument = l_mat_doc TABLES goodsmvt_item = li_gm_item return = li_return. CLEAR l_errflag. MESSAGE i005(ymess) WITH l_mat_doc. IF l_errflag IS INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. ELSE. MESSAGE i005(ymess) WITH 'ERROR'. ENDIF. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/196.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。