2014-01-08 236 views
2

我是新来的SAP & ABAP,我正在努力通过实践方法尽可能多地学习。ABAP,GOS,附件下载

基本上我有一些附件列在通用对象服务(GOS)中,我需要将它们全部下载到我的电脑中。我需要知道如何从程序/报告中以编程方式下载这些附件。

回答

1

我从来没有真正不得不这样做我自己,但我觉得这是它是如何做:

通过调用cl_binary_relation=>read_links在对象的ID轻描淡写地说,附着物的附着获取附件列表。该it_relation_options表应该充满像这样的关系:

la_relat-sign = 'I'. 
la_relat-option = 'EQ'. 
la_relat-low = 'ATTA'.  "Attachements 
APPEND la_relat TO lt_relat. 

这告诉read_links得到列为附件的相关对象。

成功获取附件详细信息后,您应该能够遍历结果表并将其传递给SO_OBJECT_READ功能模块(如果该功能模块不起作用,请尝试SO_DOCUMENT_READ_API1)。这需要一个文件夹ID和一个文档ID;在read_links的结果中,这些可以连接在一起形成一个字符串(对象类型,例如前面的SOFM)。

SO_OBJECT_READ会给你二进制内容。您可以拨打电话SO_OBJECT_DOWNLOAD(我认为)filetype = 'BIN'

希望有帮助!

+0

要仅选择某些附件,您可以查询SGTBREL表,然后从instid_b字段提取必要的键以查询SOOD(SAP Office对象定义)表,以获取文件大小,扩展名和描述等字段。然后搜索so3c表中的附件,从中可以获取必要的信息以最终使用SO_OBJECT_DOWNLOAD函数。 – user3175371