첨부한 파일에서와 같이 ..
VBTYP_N 필드 값이 2개 M 1개 N 인 경우 마지막 M값만 불러오고
2개 M 2개 N 일때에는 M값을 취하지 않는 로직을 어떻게 쓰면 됩니까~???
어려워요...ㅜㅜ 엉엉...
댓글 3
-
하루나
2008.12.18 23:15
-
김수♡
2008.12.18 23:29
감사합니다 .^^ -
chanmaniac
2008.12.19 04:35
요지는 송장문서가 존재하는건만 추출하고 싶으신거 같은데요.
하나의 오더에 대한 라인수가 짝수냐 홀수냐로 체크하시는것은 하루나님의 말씀처럼 위험할거 같네요.
그냥 M:N의 짝수, 홀수 비율로 데이타를 추출하는것을 연습하시려면 아무런 문제가 없지만, 실제 업무 프로세스상에 구현을 하신다면 다른 좋은 방법을 찾아야 할 듯 해요.
왜냐하면, 첫째는 제품에 따른 품목이 여러건일 수 있고, 두번째는 하나의 품목이라하더라도, 수금조건에는 선수금 /할부금으로 나뉘어 질수가 있다는 겁니다.
예를 들어 4970이라는 오더가 선수금 + 할부금(3차) 인 오더라면 M : N 의 비율이 오더가 전체 완료되기 까지 1:1 , 2:1 , 3:1 , 4:1 , 5:1 등의 경우의 수가 발생할 수 있다는 거죠.
M Invoice
N Invoice cancellation
위 문제는 invoice가 나갔다가 캔슬나고 다시 만들어진 경우네요.. 아마도 Billing인것 같은데 정확하게는 캔슬난 Billing전표가 어떤 Biliing을 캔슬하는지 읽어서 지워나가야 합니다. 보통 후행 문서가 선행 문서의 관계를 가지고 있고 캔슬 문서가 자기가 캔슬한 발행 문서의 관계를 가지고 있습니다. 여기서는 N으로 캔슬된 BILLING 문서의 VBRK의 SFAKN필드가 원래 발행된 문서 번호를 들고 있고 이를 체크하여 M으로 발행된 문서를 지워나가야 정확한 로직이 됩니다.
단순히 VBFA만 보면 곤란하긴 합니다만.. INVOICE ITEM과 BILLING ITEM이 정확히 1:1 매칭이 된다는 전제하에 굳이 로직을 세우자면 위 개수를 읽어온후 SORT를 하고 전체개수가 홀수이면 전표가 발생된거구 짝수이면 캔슬된겁니다. 그리고 발행과 캔슬은 순차적이므로
결국은 전체 문서 개수가 홀수인 경우에 가장 큰 문서 번호를 읽어오면 마지막 발행된 문서가 나올겁니다. 짝수는 읽어올 필요가 없겠죠 전부 캔슬 됐으니까..
수고하십시요