Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 3180

bapi create po system give message no. bm035

$
0
0

Deal all,   when i use bapi 'BAPI_PO_CREATE1' create po, system give me a error message no. bm035(Measurement unit & has no ISO code).I don't konw how to sorve it.  But when i use T-code ME21N to create po, it create suceeed. Is my code wrong?  This is my code, please anybody give me some advice, Thanks. FORM generate_free_po .   DATA: lv_ebeln LIKE ekko-ebeln ,         lv_adrnr LIKE t001w-adrnr.   CLEAR:poheader,poheaderx.   REFRESH:poitem,poitemx,pocondheader,pocondheaderx,           poschedule,poschedulex,poaddrdelivery,poreturn,pocomponents,pocomponentsx.   LOOP AT gt_freepo INTO gs_freepo.     ON CHANGE OF gs_freepo-ebeln.       IF poheader IS NOT INITIAL.         PERFORM exec_bapi_po USING lv_ebeln ''.       ENDIF.       CLEAR:poheader,poheaderx,lv_ebeln.       REFRESH:poreturn,poitem,poitemx,pocondheader,pocondheaderx,poschedule,poschedulex.       lv_ebeln = gs_freepo-ebeln.       ""po header       poheader-po_number    = gs_freepo-ebeln .        "po number       poheader-comp_code    = gs_freepo-bukrs.        "company code       poheader-doc_type    = gs_freepo-bsart.        ""document type       poheader-vendor      = gs_freepo-lifnr.        ""vendor *      poheader-currency    = gs_freepo-waers.        "waers       poheader-purch_org    = gs_freepo-ekorg.        ""pur_org       poheader-pur_group    = gs_freepo-ekgrp.        ""pur_group       poheader-creat_date  = sy-datum.       poheader-created_by  = sy-uname .       poheader-langu        = sy-langu.       poheader-doc_date    = sy-datum.       poheader-item_intvl  = '00010' .       poheader-status      = 'I' .                  "PO FROM BAPI       "" po header flag       poheaderx-po_number  = 'X' .       poheaderx-comp_code  = 'X' .       poheaderx-doc_type    = 'X' .       poheaderx-vendor      = 'X'.       poheaderx-purch_org  = 'X' .       poheaderx-pur_group  = 'X' .       poheaderx-creat_date  = 'X'.       poheaderx-created_by  = 'X'.       poheaderx-langu      = 'X' .       poheaderx-doc_date    = 'X'.       poheaderx-item_intvl  = 'X'.       poheaderx-status      = 'X' .       poheaderx-vat_cntry  = 'X' .     ENDON.     ""po item     CLEAR:poitem.     poitem-po_item    = gs_freepo-ebelp.  "EKPO 采购凭证的项目编号     poitem-material    = gs_freepo-matnr .  " MATERIAL     poitem-plant      = gs_freepo-werks.  "工厂     poitem-stge_loc    = gs_freepo-lgort . "LOCATION     poitem-quantity    = gs_freepo-menge.  "采购订单数量     SELECT SINGLE bstme INTO poitem-po_unit FROM mara WHERE matnr = gs_freepo- matnr. *    poitem-po_unit    = gs_freepo-meins.  "PO_UNIT     poitem-short_text  = gs_freepo-txz01.  "短文本     poitem-item_cat    = gs_freepo-pstyp.  "Item Catagory     ""*---------------------------------------------------------------------     poitem-free_item  = 'X'.                              ""免费项目     ""*---------------------------------------------------------------------     poitem-net_price  = gs_freepo-kbetr.  "单价     poitem-price_unit  = gs_freepo-kpein.  "单价单位     poitem-plan_del    = 0 .     poitem-preq_name  = sy-uname.     poitem-period_ind_expiration_date = sy-datum . *    poitem-po_price    = '2'.     APPEND poitem.     ""po item flag     CLEAR:poitemx.     poitemx-po_item                    = gs_freepo-ebelp.     poitemx-po_itemx                  = 'X'.     poitemx-material                  = 'X'.     poitemx-plant                      = 'X'.     poitemx-stge_loc                  = 'X'.     poitemx-quantity                  = 'X'.     poitemx-po_unit                    = 'X'.     poitemx-net_price                  = 'X'.     poitemx-price_unit                = 'X'.     poitemx-preq_name                  = 'X'.     poitemx-period_ind_expiration_date = 'X'.     poitemx-item_cat                  = 'X'.     poitemx-free_item                  = 'X'.              ""免费项目 *    poitemx-po_price                  = 'X'.     APPEND poitemx.     ""schedule     CLEAR:poschedule.     poschedule-po_item        =  gs_freepo-ebelp.     poschedule-sched_line      =  gs_freepo-ebelp.     poschedule-del_datcat_ext  = 'D'.              "交货日期的类别     poschedule-delivery_date  =  gs_freepo-eeind.    "EKPO 交货日期     poschedule-quantity        =  gs_freepo-menge.    "采购订单数量     APPEND poschedule.     """schedule flag     CLEAR:poschedulex.     poschedulex-po_item        =  gs_freepo-ebelp.     poschedulex-sched_line    =  gs_freepo-ebelp.     poschedulex-del_datcat_ext = 'X'.     poschedulex-delivery_date  = 'X'.     poschedulex-quantity      = 'X'.     APPEND poschedulex.     ""pocondheader     CLEAR:pocondheader.     pocondheader-cond_type    = 'PBXX' .     pocondheader-condition_no  = gs_freepo-ebeln.     pocondheader-itm_number    = gs_freepo-ebelp.     pocondheader-cond_value    = gs_freepo-kbetr.     pocondheader-currency      = gs_freepo-koein.     pocondheader-cond_p_unt    = gs_freepo-kpein.     pocondheader-cond_unit    = gs_freepo-kmein.     pocondheader-change_id    = 'U'.    "" U表示更新,I 表示新建     pocondheader-cond_st_no    = 1 .     SELECT SINGLE umrez umren INTO (pocondheader-numconvert,pocondheader- denominato) FROM marm         WHERE matnr = gs_freepo-matnr AND meinh = gs_freepo-meins.     APPEND pocondheader .     ""pocondheader flag     CLEAR:pocondheaderx.     pocondheaderx-cond_type    = 'X' .     pocondheaderx-condition_no = gs_freepo-ebeln.     pocondheaderx-itm_number  = gs_freepo-ebelp.     pocondheaderx-cond_st_no  = 1 .     pocondheaderx-cond_value  = 'X'.     pocondheaderx-currency    = 'X'.     pocondheaderx-cond_p_unt  = 'X'.     pocondheaderx-cond_unit    = 'X'.     pocondheaderx-change_id    = 'X'.     pocondheaderx-numconvert  = 'X'.     pocondheaderx-denominato  = 'X'.     APPEND pocondheaderx .     """address     CLEAR: poaddrdelivery,lv_adrnr .     poaddrdelivery-po_item = gs_freepo-ebelp.     SELECT SINGLE adrnr INTO lv_adrnr FROM t001w WHERE werks = gs_freepo-werks.     poaddrdelivery-addr_no = lv_adrnr .     APPEND poaddrdelivery.   ENDLOOP.   IF poheader IS NOT INITIAL.     PERFORM exec_bapi_po  USING lv_ebeln ''.   ENDIF. ENDFORM.                    " GENERATE_FREE_PO FORM exec_bapi_po  USING  l_ebeln LIKE ekko-ebeln l_flag TYPE c.   DATA: no_price_from_po LIKE bapiflag-bapiflag.   CALL FUNCTION 'BAPI_PO_CREATE1'     EXPORTING       poheader        = poheader       poheaderx        = poheaderx *      no_price_from_po = no_price_from_po     TABLES       return        = poreturn       poitem        = poitem       poitemx      = poitemx       pocondheader  = pocondheader       pocondheaderx = pocondheaderx *      POCOND        = POCOND *      POCONDX      = POCONDX       poschedulex    = poschedulex       poschedule    = poschedule       pocomponents  = pocomponents       pocomponentsx  = pocomponentsx       poaddrdelivery = poaddrdelivery.   READ TABLE poreturn WITH KEY type = 'E'.   IF sy-subrc EQ 0.     CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.     CLEAR:gs_alv.     gs_alv-ebeln    = l_ebeln.     gs_alv-type    = 'E'.     gs_alv-message  = '创建失败'.     APPEND gs_alv TO gt_alv.     LOOP AT poreturn.       gs_alv-ebeln  = l_ebeln.       gs_alv-type    = poreturn-type.       gs_alv-message = poreturn-message.       APPEND gs_alv TO gt_alv.       CLEAR:poreturn.     ENDLOOP.   ELSE.     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'       EXPORTING         wait = 'X'.     CLEAR:gs_alv.     gs_alv-ebeln    = l_ebeln.     gs_alv-type    = 'S'.     gs_alv-message  = '创建成功'.     APPEND gs_alv TO gt_alv.   ENDIF. ENDFORM.                    " EXEC_BAPI_PO


Viewing all articles
Browse latest Browse all 3180

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>