這篇文章主要介紹“ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么”,在日常操作中,相信很多人在ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、布爾津網(wǎng)站維護(hù)、網(wǎng)站推廣。1. ABAP提供了一個(gè)工具類(lèi)cl_proxy_xml_transform,通過(guò)它的兩個(gè)方法abap_to_xml_xstring和xml_xstring_to_abap實(shí)現(xiàn)兩種格式的互換。
看具體例子:
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語(yǔ)句,說(shuō)明從ABAP格式轉(zhuǎn)換成XML格式,再轉(zhuǎn)換成ABAP格式,轉(zhuǎn)換前的ABAP數(shù)據(jù)和轉(zhuǎn)換后的ABAP數(shù)據(jù)是完全相同的。
上述ABAP代碼使用到的結(jié)構(gòu)體zzcrmost__pro001dotproduct1類(lèi)型定義如下:
如果我們單步調(diào)試工具類(lèi)cl_proxy_xml_transform,發(fā)現(xiàn)它也沒(méi)有神奇之處,
內(nèi)部生成了一個(gè)ABAP simple transformation,以此來(lái)實(shí)現(xiàn)ABAP和XML格式的互相轉(zhuǎn)換。
在調(diào)試器里記錄下這個(gè)生成的transformation ID,然后用事務(wù)碼STRANS打開(kāi),就可以看到明細(xì)了。
2. 有了方法1單步調(diào)試發(fā)現(xiàn)simple transformation的提示,我們可以用另一種更簡(jiǎn)單的辦法實(shí)現(xiàn)兩種格式的互換,即直接調(diào)用simple transformation:
DATA: lv_xml TYPE string.CALL TRANSFORMATION id SOURCE b = ls_abap RESULT XML lv_xml.
生成的XML的根節(jié)點(diǎn)名稱(chēng)為b,因?yàn)樯厦娲a調(diào)用參數(shù)SOURCE,將ABAP變量ls_abap傳入時(shí),綁定的參數(shù)名為“b”。
CALL TRANSFORMATION id SOURCE XML lv_xml RESULT b = ls_abap3.
ASSERT ls_abap2 = ls_abap3. 用這種方式進(jìn)行ABAP->XML->ABAP仍然能得到最初的ABAP變量的值。
到此,關(guān)于“ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!