文档管理系统提供了一个BAPI:BAPI_DOCUMENT_CHECKOUTVIEW2来下载凭证中的附加文件。在SAP GUI的环境下,使用该BAPI是可以下载的,但是从外部系统调用该BAPI,文件始终无法下载,提示文件不能创建。各种参数都试过,折腾了很久还是没有成功。
有一日读一文章时,受了点启发,把附加文件的二进制数据通过RFC TABLE传出来,这个不用和SAP GUI做交互。在外部系统,再以二进制的方式把数据写进文件。
这种方法的实现需要知道附加文件存储的STORAGECATEGORY和FILE_ID,这个容易,通过BAPI_DOCUMENT_GETDETAIL2的TABLES参数DOCUMENTFILES可以获得。最关键的问题来了,怎么获得该文件的二进制数据,通过FM:SCMS_DOC_READ,TABLES参数CONTENT_BIN就是我们想要的了,但是这个并不是二进制,是十六进制的,需要转换一下。
我已经用VB程序实现了这个方法,我想其他语言应该也是可以实现的。
阅读(3392) | 评论(6) | 转发(0) |