Chinaunix首页 | 论坛 | 博客
  • 博客访问: 404531
  • 博文数量: 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程序实现了这个方法,我想其他语言应该也是可以实现的。
 
 
阅读(3427) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

rockyzjut2013-08-16 14:51:30

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

我也用java掉这个 webserver,但是报错:BOM not found for this material/plant/usage,求解?
同样的条件sap 执行可以的。

回复 | 举报

chinaunix网友2010-01-04 06:00:24

您好,能共享下代码吗?最近也为类似问题所困惑 我的邮箱是zhoulei0523@gmail.com 非常感谢

chinaunix网友2009-12-03 15:46:56

我调用BAPI_DOCUMENT_CHECKOUTVIEW2的时候没有任何错误提示,返回的表参数 DOCUMENTFILES里有一行记录,但是还是不能下载文件,我是使用C#调用的

chinaunix网友2009-12-03 15:28:35

能共享下您的VB代码吗,我的邮箱是 1142599830@qq.com 十分感谢您的帮助

chinaunix网友2009-12-03 15:25:13

你好,能共享一下你的vb代码吗