溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么

發(fā)布時(shí)間:2021-12-29 16:16:20 來(lái)源:億速云 閱讀:396 作者:iii 欄目:服務(wù)器

這篇文章主要介紹“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í)吧!

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)型定義如下:

ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么

如果我們單步調(diào)試工具類(lèi)cl_proxy_xml_transform,發(fā)現(xiàn)它也沒(méi)有神奇之處,

ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么

內(nèi)部生成了一個(gè)ABAP simple transformation,以此來(lái)實(shí)現(xiàn)ABAP和XML格式的互相轉(zhuǎn)換。

ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么

在調(diào)試器里記錄下這個(gè)生成的transformation ID,然后用事務(wù)碼STRANS打開(kāi),就可以看到明細(xì)了。

ABAP和XML數(shù)據(jù)格式互相轉(zhuǎn)換的方法是什么

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)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI