CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01'
DATUV = SY-DATUM
MEHRS = 'X'
MTNRV = IT2_01-MATNR
STLAL = '1'
STLAN = '1'
WERKS = IT2_01-WERKS
TABLES
STB = GT_STB
EXCEPTIONS
ALT_NOT_FOUND = 1
CALL_INVALID = 2
MATERIAL_NOT_FOUND = 3
MISSING_AUTHORIZATION = 4
NO_BOM_FOUND = 5
NO_PLANT_DATA = 6
NO_SUITABLE_BOM_FOUND = 7
CONVERSION_ERROR = 8
OTHERS = 9.
이렇게 사용하여 GT_STB에 BOM내용이 들어가게끔되어 있는데 MATERIAL 코드는 안나타나네요.
Description이나 BOM 레벨, 등은 나와요.
이거 표준 FUNCTION 아닌가요? 에러는 안나는데...
참고로 이 펑션의 기능은 입력받은 MATERIAL 기준으로 하위 BOM을 전부 나타나게 하는 겁니다.
댓글 3
-
노름마치
2007.12.12 03:31
-
SkyDream
2007.12.12 17:19
'CS_BOM_EXPL_MAT_V2'를 사용할 경우
테이블 파라미터 STB를 GT_STB로 받았으면 GT_STB-IDNRK 필드에 하위 MATERIAL 코드가 들어 갑니다.
이 필드의 값을 확인해 보시기 바랍니다.
-
행복한외계인
2007.12.12 18:11
SkyDream님, 노름마치님 답변 감사드립니다.
'CS_BOM_EXPL_MAT_V2'에는 IDNRK값이 안나와서 포기하고 결국 'CS_BOM_EXPLOSION'로 해결했답니다.
제가 FUNCTION을 잘못 사용했나봅니다... 필요한 조건값을 덜줬던지...
CALL FUNCTION 'CS_BOM_EXPLOSION'
EXPORTING
CAPID = 'PP01'
DATUV = SY-DATUM
MEHRS = 'X'
MTNRV = IT2_01-MATNR
STLAL = '1'
STLAN = '1'
WERKS = IT2_01-WERKS
TABLES
STBP = IT_STBP
STBD = IT_STBD
STBE = IT_STBE
STBK = IT_STBK
STBM = IT_STBM
STBT = IT_STBT
EXCEPTIONS
ALT_NOT_FOUND = 1
CALL_INVALID = 2
MISSING_AUTHORIZATION = 4
NO_BOM_FOUND = 5
NO_PLANT_DATA = 6
NO_SUITABLE_BOM_FOUND = 7
CONVERSION_ERROR = 8
OTHERS = 9.
이렇게 사용했는데 아직 FUNCTION을 잘 아는 것은 아니지만
STBD = IT_STBD
STBE = IT_STBE
STBK = IT_STBK
STBM = IT_STBM
STBT = IT_STBT
이 부분은 아무런 값이 안들어가도 삭제해 버리니까 에러가 발생하네요.
왜 그런지는 잘 모르겠지만 어쨌든 원하는 프로세스를 수행하니까 다행이죠 ^^
조만간 FUNCTION에 대해 눈을 뜨겠죠 ㅋㅋㅋ
* 제가 작성한 것은 아니구요.... 이렇게도 사용하는 군요
EX)
CALL FUNCTION 'CS_BOM_EXPLOSION_MAT'
EXPORTING
capid = 'PP01' "Production - general
mehrs = 'X' "(하위 level 까지 전개 하겠다는 표시)
emeng = '1000' "상위자재 1000개만들때에
MTNRV = 이것은 XZCOCAA01-MODEL_NO
DATUV = SY-DATUM OR PARAMETER에 있는 날짜 " 날짜,
stlan = '1'
WERKS = ITAB-WERKS " plant
VERID = 'P001'
TABLES
STB = STB
EXCEPTIONS
no_bom_found = 20.
CF)
CALL FUNCTION 'CS_BOM_EXPLOSION'
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
----------------------------------
DATA: BEGIN OF stb OCCURS 1000.
INCLUDE STRUCTURE stpox.
DATA: matnr LIKE mara-matnr,
seqno(04) TYPE n,
lvl_indicator(11).
DATA: END OF stb.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = pm_capid " PP01
datuv = pm_datuv " PARAMETER 의 입력값 OR SY-DATUM
emeng = pm_emeng " 1000
mtnrv = pm_mtnrv " xzcocaa01-model_no.
mehrs = 'X'
stlal = '01'
stlan = pm_stlan " PRODUCTION OR 설계 BOM
werks = pm_werks " PL10
IMPORTING
topmat = selpool
TABLES
stb = stb
EXCEPTIONS
material_not_found = 4
no_plant_data = 8
no_bom_found = 12
no_suitable_bom_found = 16
alt_not_found = 24
missing_authorization = 28.
=================================================
hpt.........
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01' "Production - general
DATUV = LV_DATE "SY-DATUM
EMENG = 1 "상위자재 1000개만
MTNRV = IT_ZPP003T-MATNR "MODEL
EHNDL = '1'
MMORY = '1'
AUMNG = 0
CUOBJ = 000000000000000000
CUOVS = 0
* MTNRV = IT_BOM-MATNR "MODEL
MEHRS = ' ' "하위 level 까지 전개
STLAL = '1' "대체BOM
STLAN = '1' "PRODUCTION OR 설계 BOM
WERKS = '1000' "PLANT
IMPORTING
TOPMAT = TOPMAT
TABLES
STB = STB
EXCEPTIONS
MATERIAL_NOT_FOUND = 4
NO_PLANT_DATA = 8
NO_BOM_FOUND = 12
NO_SUITABLE_BOM_FOUND = 16
ALT_NOT_FOUND = 24
MISSING_AUTHORIZATION = 28.
-------------------------------------------------------------------------
-----------------------------사용 PARAMETERS-----------------------------
-------------------------------------------------------------------------
설명 : 하위자재를 풀어주는 펑션,
모품번에 따른 하위자재들이 멀티레벨순으로 나옴.
------------------------------------------------------------------------
--------------------------------예제코드--------------------------------
------------------------------------------------------------------------
파라미터가 너무 많으므로 사용코드를 올린다.
리턴된 테이터를 받는 테이블.
DATA : IT_STB LIKE TABLE OF STPOX WITH HEADER LINE.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01' "여기선 내부오더냐 외부오더냐의 뜻
MKTLS = 'X'
MEHRS = 'X' "(하위 level 까지 전개 하겠다는 표시)
MTNRV = ITAB-MATNR
DATUV = SY-DATUM
SVWVO = 'X'
WERKS = P_WERKS "plant
VRSVO = 'X'
TABLES
STB = IT_STB
* TOPMAT = IT_TOPMAT
EXCEPTIONS
ALT_NOT_FOUND = 4
CALL_INVALID = 8
MATERIAL_NOT_FOUND = 12
MISSING_AUTHORIZATION = 16
NO_BOM_FOUND = 20
NO_PLANT_DATA = 24
NO_SUITABLE_BOM_FOUND = 28
CONVERSION_ERROR = 32.