안녕하세요...
제가 지금 PP모듈의 프로그램을 진행하고 있는데요...
A라는 자재의 하위 레벨의 자재를 전개하려고 합니다.
하여 'CS_BOM_EXPLOSION_MAT' 이 함수를
CALL FUNCTION 'CS_BOM_EXPLOSION_MAT'
EXPORTING
capid = 'PP01'
mehrs = 'X' "(하위 level 까지 전개 하겠다는 표시)
mtnrv = atab-matnr " 자재코드
datuv = end_date " 조회일자(조회월의 마지막일자)
stlal = '01'
stlan = '1'
emeng = atab-smenge " 수량
werks = atab-bwkey " 플랜트
IMPORTING
topmat = topmat
TABLES
stb = stb
EXCEPTIONS
no_bom_found = 20
no_plant_data = 24.
이런식으로 사용하였습니다만,,, 하위 원자재가 존재하는 완제품이나 아니면 반제품은 아무런 문제가없이 전개가 되여
제가 요구하는 데이타거 STAB에 집합이 되는데, 문제는 하위 제품이 존재하지않는 원자재거나 아니면 반제품 혹은
완제품이라하여도 BOM관리를 안하는 놈들은 저 펑션을 태우면 덤프가 떠버리네요...
그래서 A라는 자재가 하위 제품이 존재하는지 안하는지를 판닪서 저 함수를 태우고 싶은데....
동료의 말에 의하면 MAST라는 TABLE이 있대요 그래서 그 테이블에박힌 것들은 BOM관리 하는 자재드이라고 그렇게 들어서
진행해보았습니다만, 제 테스트에 의하면 어떤자재느 MAST에 존재하지만 정작 CS03 T-CODE를 태우믄 BOM이 없다고 해서...
결과적으로 제가 알고 싶은것은 어떤 방식으로 해당자재가 BOM의 관리를 하고 또 해당 시작일과 조료일의 하위 제품의 존재여부를
판단할 수 있는지를 알고 싶습니다...
도와주세요 ~~~ 감사합니다~~~~
댓글 3
-
Tester
2010.12.17 01:51
-
lucky7.
2010.12.17 02:19
굳이 다시 테이블을 찾아서 조회할 필요는 없다고 봅니다. 해
평션 실행 후 덤프를 안뜨게 할려면 항상 해당 평션을 패턴에 넣어서 평션을 소스에 추가하셔야합니다.
그러면...
* 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
* OTHERS = 8
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
이렇게 에러구문에 대한 로직 까지 같이 나옵니다. IF SY-SUBRC <> 0. ~ ENDIF. 구문까지 적어주셔야
덤프가 안나고 SKIP 됩니다.
-
EMDTLS
2010.12.20 18:27
아이고,이런 저급적인 실수를 했었네요.... LUCKY7님 감사합니다.
맘이 급하다보니 이런 .... 그래도 아직은 초자라서 이런 문제도 인츰 발견못했나보네요 ㅎㅎ ...
무튼 감사합니다~ 문제 잘 해결되였습니다.
BOM의 테이블은 아래와 같습니다. 잘 조합 하셔서 Logic을 구현 하시면 될 것 같습니다.
MAST : BOM Link to Material,
STKO : BOM Header,
STPO : BOM Item,
STAS : BOM Item Selection