입력 받는 파라미터는 월입니다.
예를 들어 2009년 3월을입력하면 3월에 대한 주가 나와야 합니다.
그런데.
주를 가져오는 함수를 이용하여 조회를 하면
3월1일은 2009년 2월의 마지막 주입니다.
제가 필요한 것은 3월 첫째주부터 3월 마지막째 주입니다.
도저히 SAP의 주를 나누는 기준을 모르겠습니다.
경험이 있으신분들께 도움을 청합니다.
댓글 6
-
에나
2009.07.16 01:59
-
궁그미
2009.07.16 02:25
답변 감사합니다.
그런데 걸쳐진 주...즉.2009년 8월31일경우 주로는 36주 이지만 실적이 4월로 들어 가야 하기때문에
이걸 구분해서 37주 즉 8월 30일 까지만 8월 실적으로 처리하고 8월 31일은 9월 실적으로 처리를 해야하는데
정확한 주의 구분을 찾지를 못하겠습니다.
-
해보자
2009.07.16 08:07
년도가 바뀔때 주차를 구하는 로직이 수요일 기준인것으로 알고 있엇는데.. (12월 31일 고려시 반드시 필요-200953 or 201001)
확인필요할것 같네요
해당 주를 찾는것은 조회하는 날짜(08/31 36주)와 그 다음달의 1일의 주차(09/01 36주)를 구해보고 같은 경우에는 다음달 실적으로 처리하시면 되지 않을까요?
추가로 36A, 36B 이런식으로 SUBWEEK를 이용하시는것도 고려해보세요.
-
해보자
2009.07.16 17:28
CALL FUNCTION 'GET_WEEK_INFO_BASED_ON_DATE '
위의 펑션을 이용하여 말일 기준으로 MONDAY(시작일),SUNDAY(마지막일)의 월을 비교하여 처리하셔도 될것 같습니다.
예)
PARAMETER: P_DATE LIKE SY-DATUM.
CALL FUNCTION 'GET_WEEK_INFO_BASED_ON_DATE'
EXPORTING
DATE = P_DATE
IMPORTING
WEEK = ZWEEK
MONDAY = MONDAY
SUNDAY = SUNDAY.
IF MONDAY+4(2) <> SUNDAY+4(2) AND MONDAY+6(2) > SUNDAY+6(2).
WRITE:/ P_DATE, ZWEEK, SUNDAY(6).
ELSE.
WRITE:/ P_DATE, ZWEEK, MONDAY(6).
ENDIF.
-
궁그미
2009.07.16 18:45
감사합니다.
'해보자' 님의 첫번째 글을 보고 해결했습니다.
다하고 보니 두번째 글이 올라와 있네요 ..ㅋㅋ..
그런데 첫번째 글에서 SUBWEEK 라는게 어떤건가요?
시간 나시면 가르쳐 주시면 감사하겠습니다.
-
해보자
2009.07.17 00:17
SUBWEEK는 주차가 월단위로 끊어지는 경우에 사용합니다.
Standard는 아니구요..
GET_WEEK_INFO_BASED_ON_DATE 을 이용하여 월로 끊어지는 주차는 결과가 A와B로 산출되도록 수정하셔야 합니다.
예를 들어 200936주차인경우 8/31까지는 200936A, 9/01부터는 200936B 이런식으로 관리를 하는 방식이에요.
주차를 이용하여 완전한 월데이타를 얻기 위해서는 해당월이 속한 첫주의 B부터 마지막주의 A까지 이용하는 방식입니다.,
EX) 2009년 8월 (200931B ~ 200936A)
CALL FUNCTION 'DATE_GET_WEEK'
으로 20090301월의 3월의 시작주를 구하고요
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
으로 20090301월의 3월 말일자 구한후
CALL FUNCTION 'DATE_GET_WEEK'
으로 20090331월의 3월의마지막주를 구하면 될듯합니다.