加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转]SAP long text SAP长文本读取

(2011-11-04 12:59:08)
标签:

sap

杂谈

分类: SAP/SD

用途:常常会用到类似于说明或者备注这样的信息,这些信息就是长文本信息。long text.

查看:比如销售订单中(SO) 的表单头和表单行项目都可以进行长文本的备注。查看途径: VA02-->输入订单号-->goto--->header--->texts-->show detail (一个放大镜的图标)-->goto --->header.到texts这一步就可以看到备注信息,在最后一步可以看到备注的 头信息。Item的备注页可以通过类似的途径来查看,不再赘述。

 

那么这些长文本信息存在什么地方呢? 通过对表的查看,发现SO对应的表VBAP,VBAK,不管是header信息还是Item信息里面都没有存储相关的数据。事实上,SAP系统把所有的长文本信息都存在了STXH 和 STXL 这两张表里面。

STXH :STXD SAPscript text file header,长文本的头数据

STXL :STXD SAPscript text file lines,长文本的明细数据。是一张簇表。

 

通过上面的信息查看,我们在表里面也可以找到数据的数据库存储信息。

 

对于STXH ,我们可以发现他的关键字有:

TDOBJECT   对象  很多情况下市表名,但不全是。
TDNAME   名称 很多情况下是表单编号&明细号
TDID   ID  这个就是ID,
TDSPRAS 语言。

而这些信息都可以在查看的时候看到。

也就是说通过这些信息我们就可以定位到我们所需要的长文本信息。

 

那在程序中,我们怎么来取这些数呢?直接取么?我们可以看到 STXL-CLUSTD是类似乱码的东西。怎么成这样的,不清楚,簇表的长字段都是这个鸟样子。那如果我们来解析,完了。

在程序中,对于长字段,可能的操作大多数是读取。

在这个时候我们就用: FUNCTION: READ_TEXT。

 CALL FUNCTION 'READ_TEXT'
  EXPORTING
   CLIENT                        SY-MANDT
    id                            ID
    language                      LANGU
    name                          NAME
    object                        OBJECT
  ARCHIVE_HANDLE                0
  LOCAL_CAT                     '
 IMPORTING
  HEADER                        HEADER
  tables
    lines                         LINES
 EXCEPTIONS
   ID                            1
   LANGUAGE                      2
   NAME                          3
   NOT_FOUND                     4
   OBJECT                        5
   REFERENCE_CHECK               6
   WRONG_ACCESS_TO_ARCHIVE       7
   OTHERS                        8
         .

 

上面的几个传入的参数都是上面讲过的。

对于传出参数:

LINES则是以一个内表的形式保存了long text,每行数据最多存72个字符。也就是说长文本中的数据被以72个一段的形式分割成了很多段,保存在内标中。这样不管长文本再长,我们都可以顺利地读取出来。并进行处理。

对于长文本的修改和删除,还有其他的功能模块与之对应。

SAVE_TEXT

DELETE_TEXT

这在用法上就大同小异了。在此不多赘述。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有