ABAP中接收.NET语言byte[]类型返回值问题
public byte[] CutBytePicture();
按SAP官方文檔(RFC To .NET Data Type Mapping),byte[]類型參數(shù)應(yīng)該使用X,RAW類型來接收返回值.
所以,我在ABAP中,使用XSTRING類型的RESULT參數(shù)來獲取數(shù)據(jù),如下。
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總接收不到數(shù)據(jù),后來我將參數(shù)改成X、RAW、X類型內(nèi)表類型都不行。時間緊,沒辦法再研究類型映射了,
最后,在.NET控件中,新增加了一個方法
public string CutHexPicture();
功能是將CutBytePicture()返回的byte[],轉(zhuǎn)化成十六進制串返回,在ABAP中使用XSTRING接收,得到了正確的結(jié)果。
?
寫在這里主要說明:
當(dāng)ABAP接收byte[]類型值時,可以將byte[]先轉(zhuǎn)換成十六進制串,再在ABAP中使用XSTRING來接收。
另外,有哪位朋友實現(xiàn)過ABAP接收byte[]類型數(shù)據(jù),也請讓我學(xué)習(xí)一下,謝謝!
總結(jié)
以上是生活随笔為你收集整理的ABAP中接收.NET语言byte[]类型返回值问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Control Framewor
- 下一篇: Transformation XML(T