返回列表 发帖

[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解码。

返回列表