메뉴 건너뛰기

SAP 한국 커뮤니티

펑션 좀 도와주세요.

이종원 2007.04.10 11:51 조회 수 : 2925 추천: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.

번호 제목 글쓴이 날짜 조회 수
187 ABAP Trial 서버에서 SE16N 기능 여부 [2] dev 2022.06.12 337
186 완전 초보 질문입니다.. [1] 냥냥2 2023.07.20 335
185 ABAP으로 무한루프 돌면서 리스너 같이 구현가능할까요? [4] 로우랜즈 2023.06.26 335
184 SAP PCE 버전에서 데이터 조회 속도문제 [1] 준서기 2022.11.25 335
183 STATUS Application Toolbar 권한 주기 jaden_ 2020.09.11 331
182 SAP GUI 렉발생 [2] file 엽떡 2023.02.01 330
181 엑셀로 다운 할 때 날짜 포맷 문의 file alarm 2021.08.02 329
180 왜 데이터가 하나씩 밖에 안들어 갈까요? [2] file 리얼오버 2022.03.19 328
179 f-04 반제 bapi함수 아시는분 ㅜㅜ file Juenkdo1 2022.03.16 326
178 Call Transaction 한 CBO 프로그램 추출 가능한가요? [2] jschoi 2021.10.15 325
177 루프 안 필드심볼 사용 시 몇 건 이상부터 속도가 차이날까요 ? [2] 파파야 2023.08.31 324
176 프로그램 복사하면 [2] 건양대학생 2022.10.02 324
175 혹시 sap gui 소리 안나게 끄는방법 있을까요? activate할때 소리가 너무 커서요 [1] 리얼오버 2021.12.30 324
174 abap 관련하여 여쭤볼게있습니다. [1] 춘시기 2022.10.25 323
173 Simple Tree 이벤트 버튼 추가 및 핸들링 문의드립니다. [2] 그렁이 2019.09.03 323
172 BAPI 실행 시 권한 체크 유무 문의 드립니다. [2] mars8734 2022.02.17 322
171 webgui에서 영역 메뉴 바로 호출하는 방법 Zekokim 2022.04.06 322
170 SMW0에서 XLSM 사용설정은 어떻게 해야하나요? [4] mhyou01 2023.07.06 317
169 3개 테이블 merge 질문 드립니다 [1] nini 2022.12.28 317
168 solix ITAB -> Xstring 변환중 렝스길이.. [4] 먹다망고야 2022.06.07 315