XML->ABAP
接口传输的如果是XML串,那么可以用CALL TRANSFORMATION的方式解析,取出想要的字段,并且不需要的字段如果存在动态值,也要注意写入取值逻辑,要不会报错。
用STRANS事务码新建一个Transformation,类型选SIMPLE,比如zxm_int_10000,然后把需要解析的XML串输入(i_requeststring),转换后的值写入LS_ABAP.
CALL TRANSFORMATION zxm_int_10000
SOURCE XML i_requeststring
RESULT abap = ls_abap.
zxm_int_10000具体内容:
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ABAP"/>
<tt:template>
这里是XML的格式,具体就是下面这样,REF值要和前面定义的名字呼应上
<A01><tt:value ref = 'ABAP.A01'></A01>
如果有循环格式,就下面这么写
<tt:loop name="ITEM" ref=".ABAP">
<A01><tt:value ref = '$ABAP.A01'></A01>
</tt:loop>
</tt:template>
</tt:transform>
ABAP->XML
也是一样的套路,Transformation写成想要转换的XML格式,然后把内表中的数据写进去
CALL TRANSFORMATION zxm_int_10000
SOURCE abap = ls_abap
RESULT XML i_requeststring.