Файлы Excel — это очень удобный формат и часто приходится выполнять импорт данных из них. При этом можно столкнуться с ситуацией, когда дата в импортируемых данных может быть в формате, отличающемся от настроек пользователя SAP. Для решения этой проблемы можно воспользоваться классом методом conv_date_ext_to_int класса cl_abap_datfm
Прежде всего сделаем таблицу с возможными форматами даты значениями домена XUDATFM
В методе class_constructor заполняем эту таблицу возможными значениями. Метод convert_date выполняет конвертацию даты, представленной в текстовом виде и возвращает дату во внутреннем формате. При первом запуске метода перебирает возможные форматы и запоминает формат, которым удалось конвертировать.
В следующий раз
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
DATA: st_xudatfm TYPE STANDARD TABLE OF xudatfm. METHOD class_constructor. st_xudatfm = VALUE #( ( '1' ) ( '2' ) ( '3' ) ( '4' ) ( '5' ) ( '6' ) ( '7' ) ( '8' ) ( '9' ) ( 'A' ) ( 'B' ) ( 'C' ) ). ENDMETHOD. METHOD convert_date. LOOP AT st_xudatfm ASSIGNING FIELD-SYMBOL(<lv_xedatfm>). TRY. cl_abap_datfm=>conv_date_ext_to_int( EXPORTING im_datext = iv_date im_datfmdes = <lv_xedatfm> IMPORTING ex_datint = rv_date ). RETURN. CATCH cx_abap_datfm_no_date cx_abap_datfm_invalid_date cx_abap_datfm_format_unknown cx_abap_datfm_ambiguous. ENDTRY. ENDLOOP. ENDMETHOD. |