第一反应是找对应表的字段,那么你可能要失望了。在SAP系统中,可以供我们使用的数据库字段最大长度是255个文本字符(注:此处可能不正确),对于很长的文本肯定是不能直接保存到某个表的字段中的。因此我们要使用系统函数Read_Text来进行读取,以下是该函数的调用方法:
data: txt type string, "项目文本
banfn type eban-banfn. "采购申请号
banfn = '0050000647'.
data: l_client type sy-mandt,
l_id type thead-tdid,
l_language type thead-tdspras,
l_name type thead-tdname,
l_object type thead-tdobject,
it type table of tline,
wa type tline.
clear: l_client, l_id, l_language, l_name, l_object.
l_client = sy-mandt.
l_id = 'B01'.
l_language = sy-langu.
l_name = banfn.
l_object = 'EBANH'.
refresh it.
call function 'READ_TEXT'
exporting
client = l_client
id = l_id
language = l_language
name = l_name
object = l_object
tables
lines = it
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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
loop at it into wa.
concatenate txt wa-tdline into txt.
endloop.
refresh it.
clear: wa.
在上面的示例代码中,红色字体部分是需要输入以及输出的参数,调用这个函数的关键就是在于如何找到各输入参数应该填写的内容,下面就以销售发货/外向交货 (VL03N)为例,介绍读取[计划员备注]文本是如何查找对应参数的。
1、 输入TCODE:VL03N,显示一个凭证
2、 在[概览]的[文本]处,进入修改状态,输入相应的段落文字,双击文本内容。
3、 进入文本内容行编辑器界面,点击菜单[转到]-->[表头]
4、 见下图,上面的四行就是需要输入的参数,其中:
文本名 :’,为凭证号,对应name参数
语 言:ZH,但是此处参数类型为C(1),不能直接使用SY-LANGU变量,根据系统配置不同,在我的系统中使用1,对应language参数,
标 识:Z001,该标识由SAP系统配置而来,对应ID参数
文本对象:VBBK,对应object参数
相对于Read_Text函数,有一个Save_Text正好是用来往系统中写文本字段,具体用户和Read_Text基本相似.