需求:在创建/修改订单点击保存的时候,将某些信息写入长文本中。
遇到的问题:抬头长文本无法写入/显示,工序、组件长文本无法写入/显示
解决方法:必须要在抬头表中将LTEXT字段置1(中文)
工序则需要将工序表中TXTSP = SY-LANGU
SAVE_TEXT后要COMMIT_TEXT
举例:在CO02中点击保存时将信息写入抬头长文本和第一条工序长文本
DATA IT_DATA TYPE STANDARD TABLE OF TLINE.
DATA IT_DATA1 TYPE STANDARD TABLE OF TLINE.
DATA W_DATA TYPE TLINE.
DATA ID LIKE THEAD-TDID.
DATA LANGUAGE LIKE THEAD-TDSPRAS.
DATA NAME LIKE THEAD-TDNAME.
DATA OBJECT LIKE THEAD-TDOBJECT.
DATA ID1 LIKE THEAD-TDID.
DATA LANGUAGE1 LIKE THEAD-TDSPRAS.
DATA NAME1 LIKE THEAD-TDNAME.
DATA OBJECT1 LIKE THEAD-TDOBJECT.
DATA WA_STXL TYPE STXL.
DATA HEADER LIKE THEAD.
DATA HEADER1 LIKE THEAD.
"必须要设置的字段,AFVC是工序表
MOVE-CORRESPONDING HEADER_IMP TO HEADER_EXP.
UPDATE AFVC SET TXTSP = SY-LANGU WHERE AUFPL = HEADER_IMP-AUFPL AND APLZL = '00000001'.
HEADER_EXP-LTEXT = SY-LANGU.
ID = 'KOPF'.
LANGUAGE = SY-LANGU.
CONCATENATE SY-MANDT HEADER_IMP-AUFNR INTO NAME.
"NAME = '910001000012761'.
OBJECT = 'AUFK'.
HEADER-TDOBJECT = OBJECT.
HEADER-TDNAME = NAME .
HEADER-TDID = ID.
HEADER-TDSPRAS = SY-LANGU.
CLEAR IT_DATA.
W_DATA-TDFORMAT = '*'.
W_DATA-TDLINE = '行1:测试数据1'.
APPEND W_DATA TO IT_DATA.
W_DATA-TDFORMAT = '*'.
W_DATA-TDLINE = '行2:测试数据2'.
APPEND W_DATA TO IT_DATA.
SELECT SINGLE * FROM STXL INTO WA_STXL
WHERE TDOBJECT = OBJECT
AND TDNAME = NAME
AND TDID = ID
AND TDSPRAS = '1'.
IF WA_STXL IS INITIAL.
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
FID = ID
FLANGUAGE = LANGUAGE
FNAME = NAME
FOBJECT = OBJECT
TABLES
FLINES = IT_DATA
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ELSE.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
HEADER = HEADER
TABLES
LINES = IT_DATA.
ENDIF.
CLEAR WA_STXL.
ID1 = 'AVOT'.
LANGUAGE1 = SY-LANGU.
"工序的名称是CLIENT + 工序的任务清单号(AUFPL) + 计数器(1)
CONCATENATE SY-MANDT HEADER_IMP-AUFPL '00000001' INTO NAME1.
OBJECT1 = 'AUFK'.
HEADER1-TDOBJECT = OBJECT1.
HEADER1-TDNAME = NAME1.
HEADER1-TDID = ID1.
HEADER1-TDSPRAS = SY-LANGU.
SELECT SINGLE * FROM STXL INTO WA_STXL
WHERE TDOBJECT = OBJECT1
AND TDNAME = NAME1
AND TDID = ID1
AND TDSPRAS = '1'.
IF WA_STXL IS INITIAL.
CALL FUNCTION 'CREATE_TEXT'
EXPORTING
FID = ID1
FLANGUAGE = LANGUAGE1
FNAME = NAME1
FOBJECT = OBJECT1
.
ELSE.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
HEADER = HEADER1
TABLES
LINES = IT_DATA.
CALL FUNCTION 'COMMIT_TEXT'
EXPORTING
OBJECT = 'AUFK'
NAME = NAME1
ID = ID1
LANGUAGE = '*'
.
ENDIF.