Chinaunix首页 | 论坛 | 博客
  • 博客访问: 402405
  • 博文数量: 120
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 1266
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 16:04
文章分类

全部博文(120)

文章存档

2011年(4)

2010年(10)

2009年(38)

2008年(68)

我的朋友

分类:

2009-07-23 15:58:49

文档管理系统提供了一个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) |
给主人留下些什么吧!~~

chinaunix网友2009-07-24 11:43:50

这个函数我们用过,BAPI_DOCUMENT_CHECKOUTVIEW2是没什么问题的,用的是java调用。文件不能创建,你看一下是不是originalpath这参数的最后没加反斜杠造成的。