메뉴 건너뛰기

SAP 한국 커뮤니티

펑션 좀 도와주세요.

이종원 2007.04.10 20:51 조회 수 : 3006 추천:127

해당소스는 특정날자를 입력하면 해당날자의 시작일과 마지막 일자를 구하는 펑션입니다.


 


해당 소스 나오는데는 큰 문제는 없구요.


 


하지만 윤달이라는 개념이 있어서 삽입을 해야하는데 넣을때 마다 오류가 발생됩니다.


 


도와주세요.


 


굵은 글씨로 처리한 부분에서 에러발생합니다.


 


제가 생각을 잘못 하는건지...여기까지 초급개발자 워니였습니다.


 


 


FUNCTION z_startday_endday_output.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(INPUTDAY) TYPE  SY-DATUM
*"  EXPORTING
*"     REFERENCE(STARTDAY) TYPE  SY-DATUM
*"     REFERENCE(ENDDAY) TYPE  SY-DATUM
*"----------------------------------------------------------------------


  DATA: date_input TYPE d,
        monthcheck(2) TYPE c.


  CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'   " 날자 유효성 검사 펑션
       EXPORTING
            date                      = inputday
       EXCEPTIONS
            plausibility_check_failed = 1
            OTHERS                    = 2.
  IF sy-subrc <> 0.
     MESSAGE E001(Z01) WITH 'ERROER!!'.
  ENDIF.



  date_input = inputday.
  date_input+6(2) = '01'.
  startday = date_input.



  monthcheck = date_input+4(2).
  CASE monthcheck.
    WHEN '01'.
      date_input+4(2) = '02'.
      endday = date_input - 1.
    WHEN '02'.
      date_input+4(2) = '03'.
      endday = date_input - 1.
    WHEN '03'.
      date_input+4(2) = '04'.
      endday = date_input - 1.
    WHEN '04'.
      date_input+4(2) = '05'.
      endday = date_input - 1.
    WHEN '05'.
      date_input+4(2) = '06'.
      endday = date_input - 1.
    WHEN '06'.
      date_input+4(2) = '07'.
      endday = date_input - 1.
    WHEN '07'.
      date_input+4(2) = '08'.
      endday = date_input - 1.
    WHEN '08'.
      date_input+4(2) = '09'.
      endday = date_input - 1.
    WHEN '09'.
      date_input+4(2) = '10'.
      endday = date_input - 1.
    WHEN '10'.
      date_input+4(2) = '11'.
      endday = date_input - 1.
    WHEN '11'.
      date_input+4(2) = '12'.
      endday = date_input - 1.
    WHEN '12'.


      if date_input+0(4) mod 4 = 0 and date_input+0(4) mod 100 = 0


        or date_input+0(4) mod 400.
      date_input+4(2) = '01'.
      endday = date_input + 364.


     else.


      date_input+4(2) = '01'.
      endday = date_input + 365.


     endif.
  ENDCASE.
ENDFUNCTION.

번호 제목 글쓴이 날짜 조회 수
227 se80에서 오브젝트 우클릭하면 나오는 메뉴의 언어 (독일어로 나와요 ㅠㅜ) [2] file 흐르링 2023.02.03 508
226 ABAP Trial 서버에서 SE16N 기능 여부 [2] dev 2022.06.13 506
225 SAP 언어 설정이 궁금합니다 [1] file sapbegin 2023.09.21 504
224 SE11, SE16 조회 조건 SELECTION FIELD 선택 문의 [2] 십년만에 2022.03.04 501
223 GUI Status의 Standard toolbar관련 질문 [1] file tubiel 2019.09.04 500
222 excel 하나의 셀에서 줄바꿈 처리 [2] 해피소울 2025.01.06 498
221 ABAP 써티 관련 질문! [2] 진원리달타냥 2021.04.05 495
220 RFC 계정 TMSADM 권한 [1] PraY 2022.09.01 491
219 대학 과제인데 모르는 부분이 있어서요. [8] 대생힘들다 2024.04.03 488
218 SD문서 처리 시 FI처리 [1] file 아바밥 2020.07.07 487
217 혹시 sap gui 소리 안나게 끄는방법 있을까요? activate할때 소리가 너무 커서요 [1] 리얼오버 2021.12.30 483
216 st04에서 select single 사용 질문 [1] 돈테크만 2020.07.24 483
215 권한별 DISPLAY 여부 [1] alarm 2021.07.01 481
214 GUI_DOWNLOAD 두번째 헤더이후 데이터 누락 [2] kesng 2018.12.24 481
213 ABAP 테이블 데이터에 각각의 파일 업로드 하는 방법 [2] GPARK 2023.04.03 479
212 st05성능추적 트랜잭션을 alv로 보는 방법이 있을까요? [1] 로우랜즈 2019.07.09 478
211 3개 테이블 merge 질문 드립니다 [1] nini 2022.12.29 476
210 가끔 데이터를 못읽어 와요. [3] 스게 2019.12.17 476
209 Simple Tree 이벤트 버튼 추가 및 핸들링 문의드립니다. [2] 그렁이 2019.09.03 475
208 BAPI_CONTRACT_CHANGE 사용 예제 [5] DONGHH 2020.12.03 474