CONVERT_DATE_INPUT
通過 Function Module 將外部日期轉(zhuǎn)換為內(nèi)部日期
所屬 Function Group : SCON
所屬 Package : SZP
DATA:date_input TYPE c LENGTH 10 VALUE ’2009-1-16′,
????? date_output TYPE sy-datum.
CALL FUNCTION ‘CONVERT_DATE_INPUT’
? EXPORTING
??? input???????????????????? = date_input
??? plausibility_check??????? = ‘X’
? IMPORTING
??? output??????????????????? = date_output "output前是否檢查數(shù)據(jù)合理性
? EXCEPTIONS
??? plausibility_check_failed = 1
??? wrong_format_in_input???? = 2
??? OTHERS??????????????????? = 3.
IF sy-subrc <> 0.
? MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
????????? WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
WRITE:’date_input:’,date_input,’date_output:’,date_output.
————
注意:
1、在R3 4.71 使用時(shí)會(huì)提示:函數(shù)模塊 CONVERT_DATE_INPUT 已過時(shí) – 無法使用
2、如果外部日期包含除當(dāng)前用戶日期分割符以外的非數(shù)字字符,則報(bào)錯(cuò) WRONG_FORMAT_IN_INPUT ,相關(guān)源代碼:
*—START
? DATE_CHAR-SEP = DATE_SEP.
? IF INPUT CN DATE_CHAR.
??? MESSAGE S012 WITH DATE_SEP RAISING WRONG_FORMAT_IN_INPUT.
? ENDIF.
*—END
3、無法處理長度大于10或小于5的外部日期,相關(guān)源代碼:
*—START
? LENGTH = STRLEN( INPUT ).
? IF LENGTH GT 10
? OR LENGTH LT 5.
??? MESSAGE S001 WITH DATE_MASK RAISING WRONG_FORMAT_IN_INPUT.
? ENDIF.
*—END
4、如果外部日期不包含日期分隔符,且外部日期長度不等于6位或8位時(shí),報(bào)錯(cuò) WRONG_FORMAT_IN_INPUT
*—START
? IF INPUT CS DATE_SEP.
??? SW_SEP = ‘X’.
? ELSE.
??? SW_SEP = SPACE.
??? IF? LENGTH NE 6??????????????????? " Jahr auffuellen
??? AND LENGTH NE 8.
????? MESSAGE S001 WITH DATE_MASK RAISING WRONG_FORMAT_IN_INPUT.
??? ENDIF.
? ENDIF.
*—END
總結(jié)
以上是生活随笔為你收集整理的CONVERT_DATE_INPUT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DATE_GET_WEEK
- 下一篇: CONVERT_DATE_WITH_TH