ABAP 초보자 입니다.
유사(?) BOM의 범위를 다음과 같이 정의한다면,
- 특정 Assy 하위 1 Level에 P1, P2, P3, P4의 자 부품의 구성되는 BOM이 있는 경우,
- P1, P2, P3, P4 부품으로 동일하게 구성되어 있는 다른 Assy List를 추출하고자 합니다. ( 위의 특정 Assy 제외 )
이러한 경우, 데이터를 뽑을 수 있는 Function이나 방법이 있을까요?
- 정전개 FM : CS_BOM_EXPL_MAT_V2 , 역전개 FM : CS_WHERE_USED_MAT을 활용하는것도 방법인듯 싶은데, 이는 좋은 방법이 아닌 듯 싶어서요,.
안녕하세요.
우선 표준 기준으로는
T-Code : CS14 프로그램을 Submit 으로 실행해서 결과를 추출하는 방법 또는
Function : CS_BC_COMPARE_TWO_BOM_VARIANTS, API_DOCUMENT_COMPARE_BOM 을 검토해보시기 바랍니다.
만약 CBO 로 로직을 구성해 짜신다면, 아래와 같은 로직은 어떨까요?
특정 반제품에 Counter를 다는 방법입니다.
특정 반제품에 P1, P2, P3, P4 가 달려있으면 Header Counter : 4 로 지정하고
CS_WHERE_USED_MAT 을 이용해서 P1, P2, P3, P4 로 상위 반제품(Assembly)를 각각 찾은 다음,
교집합이 되는 반제품 코드에 대해 Counter + 1 을 하는 식으로 해서, Counter 가 동일하면 유사하다고 판단하면 좋을 것 같습니다.
그런데 P1, P2, P3, P4, [P5] 로 구성된 반제품을 동일하게 볼건지 안볼건지가 중요할 것 같은데,
1) 동일하게 보면 위의 로직을 쓰면 되고,
2) 동일하게 안본다고 하면, 1)에서 찾은 새로운 반제품을 다시 정전개 CS_BOM_EXPL_MAT_V2 로 풀어서 P1, P2, P3, P4 를 제외하는 로직을 추가한 다음, 남은 자재가 있으면 Counter - 1 을 하는 방식으로 하면 [완전 동일] or [포함 동일] 형태로 구분할 수 있을 것 같습니다.