业务有个需求要调整一个查询BOM的报表,要加上BOM项目的长文本列,里面维护了一些物料的点位信息等,我是一个SAP编程新手,查了半天发现要用READ_TEXT方法来读取,但是其中有个NAME的传入参数,不知道怎么跟我要查询的BOM的项目对应上,搜了半天,发现一些单据的长文本都是以单据号为参数,我这BOM的项目有个物料清单号,但也没办法一对一的对应上,研究一下午最后又看了一眼长文本的抬头才发现,NAME参数是对应表的所有主键拼起来作为参数的。。。下面贴代码希望对大家有帮助:
*获取BOM项目的长文本
DATA :v_name TYPE tdobname,
v_line LIKE TABLE OF tline WITH HEADER LINE,
v_longtext TYPE c LENGTH 300.
LOOP AT bom.
v_longtext = ''.
v_name = sy-mandt && bom-stlty && bom-stlnr && bom-stlkn && bom-stpoz. "拼接name参数
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt "客户端集团
id = 'MPO' "固定值
language = sy-langu "语言
name = v_name "name参数,主键拼接
object = 'BOM' "固定值
archive_handle = '0'"固定值
TABLES
lines = v_line "长文本表
EXCEPTIONS
not_found = 1
wrong_access_to_archive = 2.
LOOP AT v_line.
CONCATENATE v_longtext cl_abap_char_utilities=>cr_lf v_line-tdline INTO v_longtext. "循环长文本表,拼接字符串
* v_longtext = v_longtext && v_line-tdline.
ENDLOOP.
IF v_longtext = ''.
bom-langtext = bom-potx1 && bom-potx2.
ELSE.
bom-langtext = v_longtext.
ENDIF.
MODIFY bom.
CLEAR bom.
ENDLOOP.
1675

被折叠的 条评论
为什么被折叠?



