CONVERT_DATE_TO_INTERNAL - ooxxvv/MySAPnotes GitHub Wiki

CONVERT_DATE_TO_INTERNAL

EXPORTING

  • DATE_EXTERNAL => 日期字串
  • 要使用和 user profile 中相同格式的字串,否則會出現錯誤
  • 日期要正確,否則會出現錯誤

IMPORTING

TABLES

EXCEPTIONS

Attributes

Methods

Code

呼叫範例程式碼

DATA: l_date         LIKE syst-datum,
      l_date_str(10) TYPE c.

CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
  EXPORTING
    date_external            = l_date_str
  IMPORTING
    date_internal            = l_date
  EXCEPTIONS
    date_external_is_invalid = 1
    OTHERS                   = 2.

IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

判斷傳入的字串是否為日期範例碼

*&---------------------------------------------------------------------*
*&      Form  CHECK_DATE_INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM check_date_input USING fi_input
                   CHANGING fo_date
                            fo_message.
  DATA: l_date_str(10) TYPE c,
        l_date         TYPE d.

*-將字串轉成日期變數
  l_date = fi_input.

*-將日期變數成 User Profile 的格式
  WRITE l_date TO l_date_str.

*-呼叫字串轉日期的參數
  CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
    EXPORTING
      date_external            = l_date_str
    IMPORTING
      date_internal            = l_date
    EXCEPTIONS
      date_external_is_invalid = 1
      OTHERS                   = 2.

*-判斷傳回值
  IF sy-subrc NE 0.
    fo_message = 'Format error'.
  ELSE.
    fo_message = space.
    fo_date    = l_date.
  ENDIF.

ENDFORM.                    " CHECK_DATE_INPUT