1、保存时的增强 PPCO0007
长文本内容校验
******start 参考LCOKO1FV3 --- get_control_text *******
DATA:lv_str TYPE string VALUE '(SAPLCOKO1)G_EDITOR',
lt_textedit_lines LIKE tline-tdline OCCURS 0,
ls_thead TYPE thead,
lt_lines TYPE TABLE OF tline,
l_text_modified_status LIKE c_textedit_control=>true.
FIELD-SYMBOLS <fs_editor> TYPE REF TO c_textedit_control.
IF header_imp-auart EQ 'ZP03'.
IF header_imp-zcode IS INITIAL.
no_update = abap_true.
MESSAGE e398(00) WITH '返工订单必须输入返工原因!'.
EXIT.
ENDIF.
ASSIGN (lv_str) TO <fs_editor>.
IF <fs_editor> IS ASSIGNED.
CLEAR lv_str.
IF <fs_editor> IS INITIAL.
REFRESH lt_lines.
ls_thead-tdid = 'KOPF'.
ls_thead-tdspras = '1'.
ls_thead-tdname = sy-mandt && header_imp-aufnr.
ls_thead-tdobject = 'AUFK'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = ls_thead-tdid
language = ls_thead-tdspras
name = ls_thead-tdname
object = ls_thead-tdobject
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc = 0.
LOOP AT lt_lines INTO DATA(ls_lines).
lv_str = lv_str && ls_lines-tdline.
ENDLOOP.
ENDIF.
ELSE.
CALL METHOD <fs_editor>->get_text_as_r3table
EXPORTING
only_when_modified = c_textedit_control=>true
IMPORTING
table = lt_textedit_lines
is_modified = l_text_modified_status
EXCEPTIONS
OTHERS = 1.
LOOP AT lt_textedit_lines INTO DATA(ls_textedit_lines).
lv_str = lv_str && ls_textedit_lines .
ENDLOOP.
ENDIF.
IF strlen( lv_str ) < 4.
no_update = abap_true.
MESSAGE w398(00) WITH '返工订单长文本不能为空或少于四个字'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
*******end 参考LCOKO1FV3 --- get_control_text*******