您好,登錄后才能下訂單哦!
這篇文章主要介紹“ABAP和XML數據格式互相轉換的方法是什么”,在日常操作中,相信很多人在ABAP和XML數據格式互相轉換的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ABAP和XML數據格式互相轉換的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1. ABAP提供了一個工具類cl_proxy_xml_transform,通過它的兩個方法abap_to_xml_xstring和xml_xstring_to_abap實現兩種格式的互換。
看具體例子:
REPORT zxm. DATA: ls_abap TYPE zzcrmost__pro001dotproduct1. DATA: ls_line LIKE LINE OF ls_abap-item. ls_line-logsys = 'AG3'. ls_line-object_family = '0401'. ls_line-product_id = 'MCF-0001'. ls_line-product_type = '01'. APPEND ls_line TO ls_abap-item. ls_line-logsys = 'QDD'. ls_line-object_family = '0402'. ls_line-product_id = 'MCF-0002'. ls_line-product_type = '02'. APPEND ls_line TO ls_abap-item. DATA(xml) = cl_proxy_xml_transform=>abap_to_xml_xstring( EXPORTING abap_data = ls_abap ddic_type = 'ZZCRMOST__PRO001DOTPRODUCT1' ). DATA: ls_abap2 LIKE ls_abap, ls_abap3 LIKE ls_abap. cl_proxy_xml_transform=>xml_xstring_to_abap( EXPORTING ddic_type = 'ZZCRMOST__PRO001DOTPRODUCT1' xml = xml IMPORTING abap_data = ls_abap2 ). ASSERT ls_abap2 = ls_abap.
最后一行的ASSERT語句,說明從ABAP格式轉換成XML格式,再轉換成ABAP格式,轉換前的ABAP數據和轉換后的ABAP數據是完全相同的。
上述ABAP代碼使用到的結構體zzcrmost__pro001dotproduct1類型定義如下:
如果我們單步調試工具類cl_proxy_xml_transform,發現它也沒有神奇之處,
內部生成了一個ABAP simple transformation,以此來實現ABAP和XML格式的互相轉換。
在調試器里記錄下這個生成的transformation ID,然后用事務碼STRANS打開,就可以看到明細了。
2. 有了方法1單步調試發現simple transformation的提示,我們可以用另一種更簡單的辦法實現兩種格式的互換,即直接調用simple transformation:
DATA: lv_xml TYPE string.CALL TRANSFORMATION id SOURCE b = ls_abap RESULT XML lv_xml.
生成的XML的根節點名稱為b,因為上面代碼調用參數SOURCE,將ABAP變量ls_abap傳入時,綁定的參數名為“b”。
CALL TRANSFORMATION id SOURCE XML lv_xml RESULT b = ls_abap3.
ASSERT ls_abap2 = ls_abap3. 用這種方式進行ABAP->XML->ABAP仍然能得到最初的ABAP變量的值。
到此,關于“ABAP和XML數據格式互相轉換的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。