[V7功能解说] 如何通过Web Services检索blob文件?
问题汇总
我需要通过web service检索一个blob的内容
管理模块
该解决方案适用于下列版本:Sage X3 V6、V7
解决方法
在本示例中,我们将尝试获取公司logo。
公司logo是存储在表ABLOB中的,你可以用索引ABB0来选择记录,其中:
—— CODBLB = LOGO
—— IDENT1 = 公司代码
创建一个程序,例如XGETIMAGE.src:
Subprog GETIMAGE(SOC,IMG,RET)
Value Char SOC
Variable Blbfile IMG
Variable Integer RET
Local File ABLOB [ABB]
If SOC=""
RET = 0
End
Endif
# Read the ABLOB table
Read [ABB]ABB0 = "LOGO";SOC;"";""
If fstat=0
IMG = [F:ABB]BLOB
RET = 1
Else
RET = 0
Endif
End
现在你需要进入子程序字典(GESASU):
—— 创建一个新的子程序
—— 文件 = XGETIMAGE
—— 子程序 = GETIMAGE
—— 勾选Web services复选框
—— 前往参数定义,检查你的参数是否设置正确
—— 创建
—— 点击“发布”(这会将你重定向到Web service GESAWE)
—— 创建
—— 发布
现在你可以用以下参数(在我们的示例中soc为AO10)测试你的新webservice: AO10
你应该收到了这样的反馈:
AO10
iVBORw0KGgoAAAANSUhEUgAAAOAAAADhCAYAAADRcblEAAAAAXNSR0IArs4c6QAAAARnQ
jwv8YQUAAOj+SURBVHhe7P1Xj6VJmueJmZ/jR/txHTplZVZWV3dPj+jhcoezIEiCBPghCF7yU1D1
.
.
.
nhUAV/L5svi8X1QQnkQW51ouMv8X5/3qQptvoWtS5m0h2qz/S+Jk0n1ruyaBsd8E0Vi+as5W/lKr
qvbMxxVqG2lQg3ylai4eW8+skBPaN1sYgJQnBd2pAP8LQomi9gtX2EwAAAAASUVORK5CYII=
1
IMG是base64编码的。
你只需将其中内容和相关内容取出,在这种情况下,删除制表符并执行base64解码。 |