Text File contents:
2021 Paid Holiday & Break Schedule – January
New Year’s Day 2021 Friday, January 1, 2021
Sankranti Thursday, January 14, 2021
Republic Day Tuesday, January 26, 2021
Source Code:
DATA : _t_datatab TYPE table_of_strings,
_t_texts TYPE STANDARD TABLE OF tline,
_thead TYPE thead,
_text_obj_name TYPE thead-tdname,
_text TYPE as4text,
_request_header TYPE trwbo_request_header,
_t_task_headers TYPE trwbo_request_headers,
_t_e071 TYPE TABLE OF e071,
_t_e071k TYPE TABLE OF e071k,
_s_e071 TYPE e071,
_t_users TYPE scts_users.
SELECTION-SCREEN BEGIN OF BLOCK sel1 WITH FRAME TITLE TEXT-t01.
PARAMETERS : p_txtnm TYPE thead-tdname MODIF ID m2,
p_fltokn TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK sel1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fltokn.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FLTOKN'
IMPORTING
file_name = p_fltokn.
START-OF-SELECTION.
* Upload the Text File - SO10 Text
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = CONV #( p_fltokn )
filetype = 'ASC'
CHANGING
data_tab = _t_datatab
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19.
IF sy-subrc IS INITIAL.
LOOP AT _t_datatab ASSIGNING FIELD-SYMBOL(<fs_datatab>).
_t_texts = VALUE #( BASE _t_texts ( tdformat = '*' tdline = <fs_datatab> ) ).
ENDLOOP.
ENDIF.
* Create Text
_text_obj_name = p_txtnm.
_thead-tdid = 'ST'.
_thead-tdspras = 'E'.
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
fid = _thead-tdid
flanguage = _thead-tdspras
fname = _text_obj_name
fobject = 'TEXT'
TABLES
flines = _t_texts
EXCEPTIONS
no_init = 1
no_save = 2
OTHERS = 3.
IF sy-subrc IS INITIAL.
* TR Author
_t_users = VALUE #( BASE _t_users ( user = sy-uname ) ).
* TR Description
_text = |{ 'Text Object:' } { _text_obj_name }|.
* Create TR
CALL FUNCTION 'TR_INSERT_REQUEST_WITH_TASKS'
EXPORTING
iv_type = 'K'
iv_text = _text
iv_owner = sy-uname
it_users = _t_users
IMPORTING
es_request_header = _request_header
et_task_headers = _t_task_headers
EXCEPTIONS
insert_failed = 1
enqueue_failed = 2
OTHERS = 3.
IF sy-subrc IS INITIAL AND _request_header-trkorr IS NOT INITIAL AND _t_task_headers[] IS NOT INITIAL.
* Commit CREATE_TEXT - If TR created successfully
COMMIT WORK.
REFRESH : _t_e071, _t_e071k[].
CLEAR : _s_e071.
_s_e071-obj_name = _text_obj_name.
ASSIGN _t_task_headers[ 1 ] TO FIELD-SYMBOL(<fs_task_headers>).
IF <fs_task_headers> IS ASSIGNED.
DO 2 TIMES.
SELECT SINGLE * FROM e070 INTO @DATA(_s_e070) WHERE trkorr EQ @<fs_task_headers>-trkorr.
IF sy-subrc IS INITIAL.
EXIT.
ELSE.
WAIT UP TO 1 SECONDS.
ENDIF.
ENDDO.
* If Subtask is Unclassified - Then change it to Development/Correction
IF _s_e070-trfunction EQ 'X'. "Unclassified Task
CALL FUNCTION 'TRINT_CHANGE_TRFUNCTION'
EXPORTING
iv_new_trfunction = 'S'
CHANGING
cs_request_header = <fs_task_headers>
EXCEPTIONS
action_aborted_by_user = 1
change_not_allowed = 2
db_access_error = 3
OTHERS = 4.
IF sy-subrc IS INITIAL.
COMMIT WORK.
ENDIF.
ENDIF.
* E071 Details
_s_e071-trkorr = <fs_task_headers>-trkorr.
_s_e071-as4pos = 0.
_s_e071-pgmid = 'R3TR'.
_s_e071-object = 'TEXT'.
_s_e071-obj_name = |{ 'TEXT' }{ ',' }{ _text_obj_name }{ ',' }{ _thead-tdid }{ ',' }{ _thead-tdspras }|.
APPEND _s_e071 TO _t_e071.
CLEAR : _s_e071.
* Assign Text Object to TR
CALL FUNCTION 'TR_APPEND_TO_COMM_OBJS_KEYS'
EXPORTING
wi_trkorr = <fs_task_headers>-trkorr
TABLES
wt_e071 = _t_e071
wt_e071k = _t_e071k
EXCEPTIONS
key_char_in_non_char_field = 1
key_check_keysyntax_error = 2
key_inttab_table = 3
key_longer_field_but_no_generc = 4
key_missing_key_master_fields = 5
key_missing_key_tablekey = 6
key_non_char_but_no_generic = 7
key_no_key_fields = 8
key_string_longer_char_key = 9
key_table_has_no_fields = 10
key_table_not_activ = 11
key_unallowed_key_function = 12
key_unallowed_key_object = 13
key_unallowed_key_objname = 14
key_unallowed_key_pgmid = 15
key_without_header = 16
ob_check_obj_error = 17
ob_devclass_no_exist = 18
ob_empty_key = 19
ob_generic_objectname = 20
ob_ill_delivery_transport = 21
ob_ill_lock = 22
ob_ill_parts_transport = 23
ob_ill_source_system = 24
ob_ill_system_object = 25
ob_ill_target = 26
ob_inttab_table = 27
ob_local_object = 28
ob_locked_by_other = 29
ob_modif_only_in_modif_order = 30
ob_name_too_long = 31
ob_no_append_of_corr_entry = 32
ob_no_append_of_c_member = 33
ob_no_consolidation_transport = 34
ob_no_original = 35
ob_no_shared_repairs = 36
ob_no_systemname = 37
ob_no_systemtype = 38
ob_no_tadir = 39
ob_no_tadir_not_lockable = 40
ob_privat_object = 41
ob_repair_only_in_repair_order = 42
ob_reserved_name = 43
ob_syntax_error = 44
ob_table_has_no_fields = 45
ob_table_not_activ = 46
tr_enqueue_failed = 47
tr_errors_in_error_table = 48
tr_ill_korrnum = 49
tr_lockmod_failed = 50
tr_lock_enqueue_failed = 51
tr_not_owner = 52
tr_no_systemname = 53
tr_no_systemtype = 54
tr_order_not_exist = 55
tr_order_released = 56
tr_order_update_error = 57
tr_wrong_order_type = 58
ob_invalid_target_system = 59
tr_no_authorization = 60
ob_wrong_tabletyp = 61
ob_wrong_category = 62
ob_system_error = 63
ob_unlocal_objekt_in_local_ord = 64
tr_wrong_client = 65
ob_wrong_client = 66
key_wrong_client = 67
OTHERS = 68.
IF sy-subrc IS INITIAL.
MESSAGE i398(00) WITH 'Text object: ' _text_obj_name 'created with TR:' _request_header-trkorr.
ELSE.
MESSAGE s208(00) WITH 'Text object not attached to Transport Request' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
ELSE.
MESSAGE s208(00) WITH 'Error: Transport Request not created' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ELSE.
MESSAGE s208(00) WITH 'Error: Text Object not created' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
Output:

Transport Request:
