ABAP中接收.NET语言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[]类型返回值问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Control Framewor
- 下一篇: Transformation XML(T