将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版

发布时间 2023-06-19 22:00:33作者: JerryWang_汪子熙

在 SAP 标准产品和实际项目开发中,经常遇到一些需要将尺寸不大的文件(比如小于1MB的配置文件)的二进制内容,存储到 ABAP 数据库的情况。

比如笔者的 SAP OData 开发教程 里这篇文章,下图代码第 17 行,使用 ABAP OPEN SQL 将变量 ls_file_db 的值,插入到数据库表 zfile 里:

在这里插入图片描述

下图是数据库表 ZFILE 的字段列表,这个数据库表用于存放用户按照笔者这篇教程介绍的步骤,使用 SAP ABAP OData 服务将文件上传到 ABAP 服务器上后保存的文件内容。

具体的,文件的内容通过字段 VALUE 维护,数据类型是 RAWSTRING.

在这里插入图片描述

比如在我的系统里,ZFILE 表里有三条数据,代表三个上传后成功保存的文件:

在这里插入图片描述

双击任意一条记录,查看明细:

在这里插入图片描述

其中 VALUE 字段显示的是文件二进制内容的十六进制编码,这个编码同我们本地使用 WinHexUltraEdit 等软件打开后查看到的内容是一致的。

本文介绍如何将数据库表里这种 RAWSTRING 格式的内容下载到本地,重新生成新的文件。

本文使用到的完整 50 行 ABAP 代码在文末,这里介绍代码编写的关键要点。