感谢依风提供
REPORT ZPPPR_BOM_INPUT.
*------>TAB1ES
TABLES :STKO,
STPO.
*------>inner-table
DATA : BEGIN OF GT_ITAB OCCURS 0,
*----->head
MATNR LIKE CSAP_MBOM-MATNR,
WERKS LIKE CSAP_MBOM-WERKS,"PLANT
BASE_QUAN LIKE STKO_API01-BASE_QUAN,"matnr_QUAN
*----->item
ITEM_NO LIKE STPO_API03-ITEM_NO, "item_no
ITEM_CATEG LIKE STPO_API03-ITEM_CATEG, "item_CATEG
COMPONENT LIKE STPO_API03-COMPONENT, "item_COMPONENT
COMP_QTY LIKE STPO_API03-COMP_QTY, "item_QTY
COMP_SCRAP LIKE STPO_API03-COMP_SCRAP, "waster
ISSUE_LOC LIKE STPO_API03-ISSUE_LOC, "product-stors
BOM_USAGE LIKE CSAP_MBOM-STLAN, "BOM_USAGE
DATE LIKE CSAP_MBOM-DATUV, "VALID_FROM
END OF GT_ITAB.
DATA : GT_ITA1 LIKE GT_ITAB OCCURS 0 WITH HEADER LINE.
DATA : GT_STPO LIKE STPO_API03 OCCURS 0 WITH HEADER LINE.
DATA : GT_STKO LIKE STKO_API01 OCCURS 0 WITH HEADER LINE.
DATA : LV_CANCEL(1) TYPE C.
*---->upload
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\BOM.txt'
FILETYPE = 'DAT'
IMPORTING
CANCEL = LV_CANCEL
TABLES
DATA_TAB = GT_ITAB
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
IF LV_CANCEL EQ 'X'.
LEAVE PROGRAM.
ENDIF.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSEIF SY-SUBRC = 0.
DATA: MATNR LIKE CSAP_MBOM-MATNR,
WERKS LIKE CSAP_MBOM-WERKS, "PLANT
BASE_QUAN LIKE STKO_API01-BASE_QUAN,"matnr_QUAN
BOM_USAGE LIKE CSAP_MBOM-STLAN. "BOM_USAGE
SORT GT_ITAB BY MATNR ITEM_NO COMPONENT.
LOOP AT GT_ITAB.
MOVE GT_ITAB TO GT_ITA1.
GT_ITA1-BOM_USAGE = '1'.
GT_ITA1-DATE = SY-DATUM.
APPEND GT_ITA1.
*---->item
GT_STPO-ITEM_NO = GT_ITAB-ITEM_NO.
GT_STPO-ITEM_CATEG = GT_ITAB-ITEM_CATEG.
GT_STPO-COMPONENT = GT_ITAB-COMPONENT.
GT_STPO-COMP_QTY = GT_ITAB-COMP_QTY.
GT_STPO-COMP_SCRAP = GT_ITAB-COMP_SCRAP.
GT_STPO-ISSUE_LOC = GT_ITAB-ISSUE_LOC.
APPEND GT_STPO.
AT END OF MATNR.
*---->head
GT_STKO-BOM_STATUS = '01'.
GT_STKO-BASE_QUAN = GT_ITA1-BASE_QUAN.
* gt_stko-base_unit = 'EA'.
APPEND GT_STKO.
*------>creat-bom
CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
EXPORTING
MATERIAL = GT_ITA1-MATNR
PLANT = GT_ITA1-WERKS
BOM_USAGE = GT_ITA1-BOM_USAGE
VALID_FROM = GT_ITA1-DATE
I_STKO = GT_STKO
FL_BOM_CREATE = 'X'
TABLES
T_STPO = GT_STPO
EXCEPTIONS
ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSEIF SY-SUBRC = 0.
REFRESH GT_STKO.
REFRESH GT_STPO.
ENDIF.
ENDAT.
ENDLOOP.
ENDIF.
模板
物料编码 | 工厂 | 基本数量 | BOM项目号 | 项目类别 | BOM 组件 | 组件数量 | 部件废品(%) | 生产订单发货仓储地点 |
A1-PHANTOM01 | 2110 | 10 | 10 | L | A1-RAW01 | 1 | 2702 | |
A1-PHANTOM01 | 2110 | 10 | 20 | L | A1-RAW02 | 2 | 6 | 2802 |
A1-PHANTOM01 | 2110 | 10 | 30 | L | A1-RAW | 3 | ||
A1-FIN01 | 2110 | 1 | 10 | L | A1-RAW02 | 10 | 3 | |
A1-FIN01 | 2110 | 1 | 20 | L | A1-RAW | 20 | 4 |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/166523/viewspace-331094/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/166523/viewspace-331094/