ABAP中接收.NET语言byte[]类型返回值问题
2011-08-26 09:09
591 查看
在公司自开发的一个项目中,使用了.NET编写的视频监控控件。控件提供了CutBytePicture接口函数用于截取视频图片,返回图片字节流。.NET函数原型如下:
public byte[] CutBytePicture();
按SAP官方文档(RFC To .NET Data Type Mapping),byte[]类型参数应该使用X,RAW类型来接收返回值.
所以,我在ABAP中,使用XSTRING类型的RESULT参数来获取数据,如下。
METHOD CUT_BYTE_PICTURE.
CALL METHOD CALL_METHOD
EXPORTING
METHOD = 'CutBytePicture'
IMPORTING
RESULT = RESULT.
CALL METHOD CL_GUI_CFW=>FLUSH
* exceptions
* cntl_system_error = 1
* cntl_error = 2
* others = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
RAISE ERROR_CNTL_CALL.
ENDIF.
ENDMETHOD.
但是,虽然sy-subrc的值一直为0,但RESULT总接收不到数据,后来我将参数改成X、RAW、X类型内表类型都不行。时间紧,没办法再研究类型映射了,
最后,在.NET控件中,新增加了一个方法
public string CutHexPicture();
功能是将CutBytePicture()返回的byte[],转化成十六进制串返回,在ABAP中使用XSTRING接收,得到了正确的结果。
写在这里主要说明:
当ABAP接收byte[]类型值时,可以将byte[]先转换成十六进制串,再在ABAP中使用XSTRING来接收。
另外,有哪位朋友实现过ABAP接收byte[]类型数据,也请让我学习一下,谢谢!
public byte[] CutBytePicture();
按SAP官方文档(RFC To .NET Data Type Mapping),byte[]类型参数应该使用X,RAW类型来接收返回值.
所以,我在ABAP中,使用XSTRING类型的RESULT参数来获取数据,如下。
METHOD CUT_BYTE_PICTURE.
CALL METHOD CALL_METHOD
EXPORTING
METHOD = 'CutBytePicture'
IMPORTING
RESULT = RESULT.
CALL METHOD CL_GUI_CFW=>FLUSH
* exceptions
* cntl_system_error = 1
* cntl_error = 2
* others = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
RAISE ERROR_CNTL_CALL.
ENDIF.
ENDMETHOD.
但是,虽然sy-subrc的值一直为0,但RESULT总接收不到数据,后来我将参数改成X、RAW、X类型内表类型都不行。时间紧,没办法再研究类型映射了,
最后,在.NET控件中,新增加了一个方法
public string CutHexPicture();
功能是将CutBytePicture()返回的byte[],转化成十六进制串返回,在ABAP中使用XSTRING接收,得到了正确的结果。
写在这里主要说明:
当ABAP接收byte[]类型值时,可以将byte[]先转换成十六进制串,再在ABAP中使用XSTRING来接收。
另外,有哪位朋友实现过ABAP接收byte[]类型数据,也请让我学习一下,谢谢!
相关文章推荐
- ABAP中接收.NET语言byte[]类型返回值问题
- python语言 buffer类型数据的使用 'ascii' codec can't decode byte 0xe5 问题的解决
- 解决java传递参数是String类型,pgsql的numeric字段接收报错问题
- 服务器端和客户端不同类型语言编译问题
- C语言控制输出不按数据类型输出的问题
- byte[]类型toString遇到的问题
- java中byte[]转换成String类型的问题
- 将java的集合转换为数据库集合类型 解决weblogic调用存储过程的时候,返回值乱码问题
- 在学习.net中的小问题,关于oledb 的日期数据类型
- BeginInvoke与EndInvoke方法解决多线程接收委托返回值问题
- Biztalk中处理web service的byte[]类型的返回值
- go语言类型转换问题,求解?
- 对Java语言的byte类型变量进行无符号提升
- 问题(怎样在dephi中引用.net中定义的类.方法参数,参数类型为XMLdocument?我要调用此方法并把实例花的xmldocument类型的变量作为参数给它。)
- @requestbody接收json参数 映射到 实体类中 Date(时间日期)类型转换问题
- java中byte[]转换成String类型的问题
- Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
- C语言中malloc函数返回值是否需要类型强制转换问题
- 关于C语言数据类型的十个问题
- 关于.net 保存 decimal类型数据到SQLServer2012数据库时自动取整的问题