Simple transformation error
Hallo,
Following message is sent checking the transformation:
expected element 'cond | s-cond | d-cond'
Transformation Z_TEST 77
Do you have an idea what can be wrong?
Thanks for your help
Freddy
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="DPW8"/>
<tt:template>
<tt:deserialize>
<DPW8>
<tt:d-cond>
<tt:attribute name="trackingid" value-ref="DPW8.trackingid"/>
</tt:d-cond>
<tt:loop name="ERR" ref="DPW8.ERR">
<ERR>
<tt:group>
<tt:d-cond frq="*">
<NUM>
<tt:value ref="$ERR.NUM"/>
</NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<MSG_TXT>
<tt:value ref="$ERR.MSG_TXT"/>
</MSG_TXT>
</tt:d-cond>
</tt:group>
</ERR>
</tt:loop>
<tt:d-cond>
<REC_LOC>
<tt:value ref="DPW8.REC_LOC"/>
</REC_LOC>
</tt:d-cond>
<tt:d-cond>
<PNR_PAR>
<tt:value ref="DPW8.PNR_PAR"/>
</PNR_PAR>
</tt:d-cond>
<tt:d-cond>
<CRE_DAT>
<tt:value ref="DPW8.CRE_DAT"/>
</CRE_DAT>
</tt:d-cond>
<tt:loop name="GRP_INF" ref="DPW8.GRP_INF">
<GRP_INF>
<tt:group>
<tt:d-cond frq="*">
<GRP_COU>
<tt:value ref="$GRP_INF.GRP_COU"/>
</GRP_COU>
</tt:d-cond>
<tt:d-cond frq="*">
<GRP_NME>
<tt:value ref="$GRP_INF.GRP_NME"/>
</GRP_NME>
</tt:d-cond>
<tt:d-cond frq="*">
<REM_NME>
<tt:value ref="$GRP_INF.REM_NME"/>
</REM_NME>
</tt:d-cond>
<tt:d-cond frq="*">
<GRP_PTC>
<tt:value ref="$GRP_INF.GRP_PTC"/>
</GRP_PTC>
</tt:d-cond>
</tt:group>
</GRP_INF>$
</tt:loop>
<tt:loop name="PAX_INF" ref="DPW8.PAX_INF">
<PAX_INF>
<tt:group>
<tt:d-cond frq="*">
<ITM_COU>
<tt:value ref="$PAX_INF.ITM_COU"/>
</ITM_COU>
</tt:d-cond>
<tt:loop name="NME_ITM" ref="$PAX_INF.NME_ITM">
<NME_ITM>
<tt:group>
<tt:d-cond frq="*">
<NME_POS>
<tt:value ref="$NME_ITM.NME_POS"/>
</NME_POS>
</tt:d-cond>
<tt:d-cond frq="*">
<PTC>
<tt:value ref="$NME_ITM.PTC"/>
</PTC>
</tt:d-cond>
<tt:d-cond frq="*">
<AGE>
<tt:value ref="$NME_ITM.AGE"/>
</AGE>
</tt:d-cond>
<tt:d-cond frq="*">
<PAX_NME>
<tt:value ref="$NME_ITM.PAX_NME"/>
</PAX_NME>
</tt:d-cond>
<tt:d-cond frq="*">
<AGE>
<tt:value ref="$NME_ITM.AGE"/>
</AGE>
</tt:d-cond>
<tt:d-cond frq="*">
<PTC>
<tt:value ref="$NME_ITM.PTC"/>
</PTC>
</tt:d-cond>
<tt:d-cond frq="*">
<CST_NME_INF>
<tt:value ref="$NME_ITM.CST_NME_INF"/>
</CST_NME_INF>
</tt:d-cond>
</tt:group>
</NME_ITM>
</tt:loop>
</tt:group>
</PAX_INF>
</tt:loop>
<tt:loop name="AIR_SEG_INF" ref="DPW8.AIR_SEG_INF">
<AIR_SEG_INF>
<tt:group>
<tt:d-cond frq="*">
<ITM_COU>
<tt:group>
<tt:value ref="$AIR_SEG_INF.ITM_COU"/>
</tt:group>
</ITM_COU>
</tt:d-cond>
<tt:loop name="AIR_ITM" ref="$AIR_SEG_INF.AIR_ITM">
<AIR_ITM>
<tt:group>
<tt:d-cond frq="*">
<NUM_SEA>
<tt:value ref="$AIR_ITM.NUM_SEA"/>
</NUM_SEA>
</tt:d-cond>
<tt:d-cond frq="*">
<SEG_STA>
<tt:value ref="$AIR_ITM.SEG_STA"/>
</SEG_STA>
</tt:d-cond>
<tt:d-cond frq="*">
<SEG_NUM>
<tt:value ref="$AIR_ITM.SEG_NUM"/>
</SEG_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<ARL_COD>
<tt:value ref="$AIR_ITM.ARL_COD"/>
</ARL_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<CLA_COD>
<tt:value ref="$AIR_ITM.CLA_COD"/>
</CLA_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<FLI_NUM>
<tt:value ref="$AIR_ITM.FLI_NUM"/>
</FLI_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<E_TIC_ELI>
<tt:value ref="$AIR_ITM.E_TIC_ELI"/>
</E_TIC_ELI>
</tt:d-cond>
<tt:d-cond frq="*">
<MAR_SEG_NUM>
<tt:value ref="$AIR_ITM.MAR_SEG_NUM"/>
</MAR_SEG_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<DEP_TIM>
<tt:value ref="$AIR_ITM.DEP_TIM"/>
</DEP_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<FLI_DAT>
<tt:value ref="$AIR_ITM.FLI_DAT"/>
</FLI_DAT>
</tt:d-cond>
<tt:d-cond frq="*">
<FLI_DAY>
<tt:value ref="$AIR_ITM.FLI_DAY"/>
</FLI_DAY>
</tt:d-cond>
<tt:d-cond frq="*">
<DEP_TER>
<tt:value ref="$AIR_ITM.DEP_TER"/>
</DEP_TER>
</tt:d-cond>
<tt:d-cond frq="*">
<SEG_MIL>
<tt:value ref="$AIR_ITM.SEG_MIL"/>
</SEG_MIL>
</tt:d-cond>
<tt:d-cond frq="*">
<DEP_ARP>
<tt:value ref="$AIR_ITM.DEP_ARP"/>
</DEP_ARP>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_ARP>
<tt:value ref="$AIR_ITM.ARR_ARP"/>
</ARR_ARP>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_TIM>
<tt:value ref="$AIR_ITM.ARR_TIM"/>
</ARR_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_DAT>
<tt:value ref="$AIR_ITM.ARR_DAT"/>
</ARR_DAT>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_DAY>
<tt:value ref="$AIR_ITM.ARR_DAY"/>
</ARR_DAY>
</tt:d-cond>
<tt:d-cond frq="*">
<DRC_RES_LOC>
<tt:value ref="$AIR_ITM.DRC_RES_LOC"/>
</DRC_RES_LOC>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_TER>
<tt:value ref="$AIR_ITM.ARR_TER"/>
</ARR_TER>
</tt:d-cond>
<tt:d-cond frq="*">
<NUM_STO>
<tt:value ref="$AIR_ITM.NUM_STO"/>
</NUM_STO>
</tt:d-cond>
<tt:d-cond frq="*">
<ACU_FLI_TIM>
<tt:value ref="$AIR_ITM.ACU_FLI_TIM"/>
</ACU_FLI_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<MAR_SEG_NUM>
<tt:value ref="$AIR_ITM.MAR_SEG_NUM"/>
</MAR_SEG_NUM>
</tt:d-cond>
<tt:loop name="INT_STO" ref="$AIR_ITM.INT_STO">
<INT_STO>
<tt:group>
<tt:d-cond frq="*">
<ARR_ARP>
<tt:value ref="$INT_STO.ARR_ARP"/>
</ARR_ARP>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_TIM>
<tt:value ref="$INT_STO.ARR_TIM"/>
</ARR_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_DAT>
<tt:value ref="$INT_STO.ARR_DAT"/>
</ARR_DAT>
</tt:d-cond>
<tt:d-cond frq="*">
<DEP_TIM>
<tt:value ref="$INT_STO.DEP_TIM"/>
</DEP_TIM>
</tt:d-cond>
</tt:group>
</INT_STO>
</tt:loop>
<tt:loop name="ADD_FLI_SVC" ref="$AIR_ITM.ADD_FLI_SVC">
<ADD_FLI_SVC>
<tt:group>
<tt:d-cond frq="*">
<DOT_PER>
<tt:value ref="$ADD_FLI_SVC.DOT_PER"/>
</DOT_PER>
</tt:d-cond>
<tt:d-cond frq="*">
<EQP_TYP>
<tt:value ref="$ADD_FLI_SVC.EQP_TYP"/>
</EQP_TYP>
</tt:d-cond>
<tt:d-cond frq="*">
<MEA_TYP>
<tt:value ref="$ADD_FLI_SVC.MEA_TYP"/>
</MEA_TYP>
</tt:d-cond>
<tt:d-cond frq="*">
<LEG_MIL>
<tt:value ref="$ADD_FLI_SVC.LEG_MIL"/>
</LEG_MIL>
</tt:d-cond>
<tt:d-cond frq="*">
<ELA_FLI_TIM>
<tt:value ref="$ADD_FLI_SVC.ELA_FLI_TIM"/>
</ELA_FLI_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<GRO_TIM>
<tt:value ref="$ADD_FLI_SVC.GRO_TIM"/>
</GRO_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<ACU_FLI_TIM>
<tt:value ref="$ADD_FLI_SVC.ACU_FLI_TIM"/>
</ACU_FLI_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<GRO_TIM>
<tt:value ref="$ADD_FLI_SVC.GRO_TIM"/>
</GRO_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<EQP_CHG_COD>
<tt:value ref="$ADD_FLI_SVC.EQP_CHG_COD"/>
</EQP_CHG_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<SPE_SVC_COD>
<tt:value ref="$ADD_FLI_SVC.SPE_SVC_COD"/>
</SPE_SVC_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<DOT_PER>
<tt:value ref="$ADD_FLI_SVC.DOT_PER"/>
</DOT_PER>
</tt:d-cond>
<tt:loop name="COM" ref="$ADD_FLI_SVC.COM">
<COM>
<tt:group>
<tt:d-cond frq="*">
<COD_SHA_INF>
<tt:value ref="$COM.COD_SHA_INF"/>
</COD_SHA_INF>
</tt:d-cond>
<tt:d-cond frq="*">
<AFF_FLI_NUM>
<tt:value ref="$COM.AFF_FLI_NUM"/>
</AFF_FLI_NUM>
</tt:d-cond>
</tt:group>
</COM>
</tt:loop>
</tt:group>
</ADD_FLI_SVC>
</tt:loop>
</tt:group>
</AIR_ITM>
</tt:loop>
<tt:d-cond frq="*">
<ITM_COU>
<tt:group>
<tt:value ref="$AIR_SEG_INF.ITM_COU"/>
</tt:group>
</ITM_COU>
</tt:d-cond>
</tt:group>
</AIR_SEG_INF>
</tt:loop>
<tt:loop name="HTL_SEG_INF" ref="DPW8.HTL_SEG_INF">
<HTL_SEG_INF>
<tt:d-cond frq="*">
<ITM_COU>
<tt:value ref="$HTL_SEG_INF.ITM_COU"/>
</ITM_COU>
</tt:d-cond>
<tt:loop name="HTL_ITM" ref="$HTL_SEG_INF.HTL_ITM">
<HTL_ITM>
<tt:d-cond frq="*">
<SEG_NUM>
<tt:value ref="$HTL_ITM.SEG_NUM"/>
</SEG_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<SEG_STA>
<tt:value ref="$HTL_ITM.SEG_STA"/>
</SEG_STA>
</tt:d-cond>
<tt:d-cond frq="*">
<NUM_PTY>
<tt:value ref="$HTL_ITM.NUM_PTY"/>
</NUM_PTY>
</tt:d-cond>
<tt:d-cond frq="*">
<NUM_RM>
<tt:value ref="$HTL_ITM.NUM_RM"/>
</NUM_RM>
</tt:d-cond>
<tt:d-cond frq="*">
<TTL_PEO>
<tt:value ref="$HTL_ITM.TTL_PEO"/>
</TTL_PEO>
</tt:d-cond>
<tt:d-cond frq="*">
<NUM_CHD>
<tt:value ref="$HTL_ITM.NUM_CHD"/>
</NUM_CHD>
</tt:d-cond>
<tt:d-cond frq="*">
<RM_TYP>
<tt:value ref="$HTL_ITM.RM_TYP"/>
</RM_TYP>
</tt:d-cond>
<tt:d-cond frq="*">
<RM_DSC>
<tt:value ref="$HTL_ITM.RM_DSC"/>
</RM_DSC>
</tt:d-cond>
<tt:d-cond frq="*">
<RM_LOC>
<tt:value ref="$HTL_ITM.RM_LOC"/>
</RM_LOC>
</tt:d-cond>
<tt:d-cond frq="*">
<CHK_IN_DAT>
<tt:value ref="$HTL_ITM.CHK_IN_DAT"/>
</CHK_IN_DAT>
</tt:d-cond>
<tt:d-cond frq="*">
<CHK_IN_TIM>
<tt:value ref="$HTL_ITM.CHK_IN_TIM"/>
</CHK_IN_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<CHK_OUT_DAT>
<tt:value ref="$HTL_ITM.CHK_OUT_DAT"/>
</CHK_OUT_DAT>
</tt:d-cond>
<tt:d-cond frq="*">
<CHK_OUT_TIM>
<tt:value ref="$HTL_ITM.CHK_OUT_TIM"/>
</CHK_OUT_TIM>
</tt:d-cond>
<tt:d-cond frq="*">
<BKG_SOU>
<tt:value ref="$HTL_ITM.BKG_SOU"/>
</BKG_SOU>
</tt:d-cond>
<tt:d-cond frq="*">
<GST_NME>
<tt:value ref="$HTL_ITM.GST_NME"/>
</GST_NME>
</tt:d-cond>
<tt:d-cond frq="*">
<GUA_INF>
<tt:value ref="$HTL_ITM.GUA_INF"/>
</GUA_INF>
</tt:d-cond>
<tt:d-cond frq="*">
<GUA_RQT>
<tt:value ref="$HTL_ITM.GUA_RQT"/>
</GUA_RQT>
</tt:d-cond>
<tt:d-cond frq="*">
<ARR_INF>
<tt:value ref="$HTL_ITM.ARR_INF"/>
</ARR_INF>
</tt:d-cond>
<tt:d-cond frq="*">
<CFO_NUM>
<tt:value ref="$HTL_ITM.CFO_NUM"/>
</CFO_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<WRI_CFO>
<tt:value ref="$HTL_ITM.WRI_CFO"/>
</WRI_CFO>
</tt:d-cond>
<tt:d-cond frq="*">
<CAN_NUM>
<tt:value ref="$HTL_ITM.CAN_NUM"/>
</CAN_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<CAN_POL>
<tt:value ref="$HTL_ITM.CAN_POL"/>
</CAN_POL>
</tt:d-cond>
<tt:d-cond frq="*">
<CHK_OUT_PEN>
<tt:value ref="$HTL_ITM.CHK_OUT_PEN"/>
</CHK_OUT_PEN>
</tt:d-cond>
<tt:d-cond frq="*">
<FQT_TRA_NUM>
<tt:value ref="$HTL_ITM.FQT_TRA_NUM"/>
</FQT_TRA_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<FQT_GST_NUM>
<tt:value ref="$HTL_ITM.FQT_GST_NUM"/>
</FQT_GST_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<COR_DCT_NUM>
<tt:value ref="$HTL_ITM.COR_DCT_NUM"/>
</COR_DCT_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<SUP_INF>
<tt:value ref="$HTL_ITM.SUP_INF"/>
</SUP_INF>
</tt:d-cond>
<tt:d-cond frq="*">
<SPE_ASC_PRI>
<tt:value ref="$HTL_ITM.SPE_ASC_PRI"/>
</SPE_ASC_PRI>
</tt:d-cond>
<tt:d-cond frq="*">
<CM_RAT>
<tt:value ref="$HTL_ITM.CM_RAT"/>
</CM_RAT>
</tt:d-cond>
<tt:d-cond frq="*">
<TOU_COD>
<tt:value ref="$HTL_ITM.TOU_COD"/>
</TOU_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<I_TOU_NUM>
<tt:value ref="$HTL_ITM.I_TOU_NUM"/>
</I_TOU_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<MEA_PLA_COD>
<tt:value ref="$HTL_ITM.MEA_PLA_COD"/>
</MEA_PLA_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<MEA_PLA_AMT>
<tt:value ref="$HTL_ITM.MEA_PLA_AMT"/>
</MEA_PLA_AMT>
</tt:d-cond>
<tt:d-cond frq="*">
<NUM_MEA_PLA>
<tt:value ref="$HTL_ITM.NUM_MEA_PLA"/>
</NUM_MEA_PLA>
</tt:d-cond>
<tt:d-cond frq="*">
<PUP_LOC>
<tt:value ref="$HTL_ITM.PUP_LOC"/>
</PUP_LOC>
</tt:d-cond>
<tt:loop name="HTL_INF" ref="$HTL_ITM.HTL_INF">
<HTL_INF>
<tt:d-cond frq="*">
<HTL_VEN_COD>
<tt:value ref="$HTL_INF.HTL_VEN_COD"/>
</HTL_VEN_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<HTL_VEN_NME>
<tt:value ref="$HTL_INF.HTL_VEN_NME"/>
</HTL_VEN_NME>
</tt:d-cond>
<tt:d-cond frq="*">
<HTL_CIT_COD>
<tt:value ref="$HTL_INF.HTL_CIT_COD"/>
</HTL_CIT_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<PRO_COD>
<tt:value ref="$HTL_INF.PRO_COD"/>
</PRO_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<PRO_NME>
<tt:value ref="$HTL_INF.PRO_NME"/>
</PRO_NME>
</tt:d-cond>
<tt:loop name="ADR" ref="$HTL_INF.ADR">
<ADR>
<tt:value ref="$ADR.ADR"/>
</ADR>
</tt:loop>
<tt:d-cond frq="*">
<PST_COD>
<tt:value ref="$HTL_INF.PST_COD"/>
</PST_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<VEN_TEL>
<tt:value ref="$HTL_INF.VEN_TEL"/>
</VEN_TEL>
</tt:d-cond>
<tt:d-cond frq="*">
<FAX_NUM>
<tt:value ref="$HTL_INF.FAX_NUM"/>
</FAX_NUM>
</tt:d-cond>
</HTL_INF>
</tt:loop>
<tt:loop name="HTL_RAT_INF" ref="$HTL_ITM.HTL_RAT_INF">
<HTL_RAT_INF>
<tt:d-cond frq="*">
<RAT_DSC>
<tt:value ref="$HTL_RAT_INF.RAT_DSC"/>
</RAT_DSC>
</tt:d-cond>
<tt:d-cond frq="*">
<TTL_RAT>
<tt:value ref="$HTL_RAT_INF.TTL_RAT"/>
</TTL_RAT>
</tt:d-cond>
<tt:d-cond frq="*">
<RAT_PLA>
<tt:value ref="$HTL_RAT_INF.RAT_PLA"/>
</RAT_PLA>
</tt:d-cond>
<tt:d-cond frq="*">
<TTL_RAT>
<tt:value ref="$HTL_RAT_INF.TTL_RAT"/>
</TTL_RAT>
</tt:d-cond>
<tt:d-cond frq="*">
<TTL_RAT_DTL>
<tt:value ref="$HTL_RAT_INF.TTL_RAT_DTL"/>
</TTL_RAT_DTL>
</tt:d-cond>
<tt:d-cond frq="*">
<BAS_AMT>
<tt:value ref="$HTL_RAT_INF.BAS_AMT"/>
</BAS_AMT>
</tt:d-cond>
<tt:d-cond frq="*">
<RAT_TYP>
<tt:value ref="$HTL_RAT_INF.RAT_TYP"/>
</RAT_TYP>
</tt:d-cond>
<tt:d-cond frq="*">
<CUR_COD>
<tt:value ref="$HTL_RAT_INF.CUR_COD"/>
</CUR_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<SVC_CRG>
<tt:value ref="$HTL_RAT_INF.SVC_CRG"/>
</SVC_CRG>
</tt:d-cond>
<tt:d-cond frq="*">
<RM_SUR>
<tt:value ref="$HTL_RAT_INF.RM_SUR"/>
</RM_SUR>
</tt:d-cond>
<tt:d-cond frq="*">
<ADD_RM_TAX>
<tt:value ref="$HTL_RAT_INF.ADD_RM_TAX"/>
</ADD_RM_TAX>
</tt:d-cond>
<tt:d-cond frq="*">
<RAT_CHG_IND>
<tt:value ref="$HTL_RAT_INF.RAT_CHG_IND"/>
</RAT_CHG_IND>
</tt:d-cond>
<tt:loop name="RM_RAT_INF" ref="$HTL_RAT_INF.RM_RAT_INF">
<RM_RAT_INF>
<tt:d-cond frq="*">
<CUR_COD>
<tt:value ref="$RM_RAT_INF.CUR_COD"/>
</CUR_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<RM_RAT>
<tt:value ref="$RM_RAT_INF.RM_RAT"/>
</RM_RAT>
</tt:d-cond>
<tt:d-cond frq="*">
<EFF_DAT>
<tt:value ref="$RM_RAT_INF.EFF_DAT"/>
</EFF_DAT>
</tt:d-cond>
</RM_RAT_INF>
</tt:loop>
<tt:d-cond frq="*">
<TAX_RAT>
<tt:value ref="$HTL_RAT_INF.TAX_RAT"/>
</TAX_RAT>
</tt:d-cond>
<tt:loop name="EX_CRG_INF" ref="$HTL_RAT_INF.EX_CRG_INF">
<EX_CRG_INF>
<tt:d-cond frq="*">
<ADT_ROL_CUR_COD>
<tt:value ref="$EX_CRG_INF.ADT_ROL_CUR_COD"/>
</ADT_ROL_CUR_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<ADT_ROL_AMT>
<tt:value ref="$EX_CRG_INF.ADT_ROL_AMT"/>
</ADT_ROL_AMT>
</tt:d-cond>
<tt:d-cond frq="*">
<ADT_ROL_NUM>
<tt:value ref="$EX_CRG_INF.ADT_ROL_NUM"/>
</ADT_ROL_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<CHD_ROL_CUR_COD>
<tt:value ref="$EX_CRG_INF.CHD_ROL_CUR_COD"/>
</CHD_ROL_CUR_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<CHD_ROL_AMT>
<tt:value ref="$EX_CRG_INF.CHD_ROL_AMT"/>
</CHD_ROL_AMT>
</tt:d-cond>
<tt:d-cond frq="*">
<CHD_ROL_NUM>
<tt:value ref="$EX_CRG_INF.CHD_ROL_NUM"/>
</CHD_ROL_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<CRB_CUR_COD>
<tt:value ref="$EX_CRG_INF.CRB_CUR_COD"/>
</CRB_CUR_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<CRB_AMT>
<tt:value ref="$EX_CRG_INF.CRB_AMT"/>
</CRB_AMT>
</tt:d-cond>
<tt:d-cond frq="*">
<CRB_NUM>
<tt:value ref="$EX_CRG_INF.CRB_NUM"/>
</CRB_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<EX_CHD_CUR_COD>
<tt:value ref="$EX_CRG_INF.EX_CHD_CUR_COD"/>
</EX_CHD_CUR_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<EX_CHD_AMT>
<tt:value ref="$EX_CRG_INF.EX_CHD_AMT"/>
</EX_CHD_AMT>
</tt:d-cond>
<tt:d-cond frq="*">
<EX_CHD_NUM>
<tt:value ref="$EX_CRG_INF.EX_CHD_NUM"/>
</EX_CHD_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<EX_ADT_CUR_COD>
<tt:value ref="$EX_CRG_INF.EX_ADT_CUR_COD"/>
</EX_ADT_CUR_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<EX_ADT_AMT>
<tt:value ref="$EX_CRG_INF.EX_ADT_AMT"/>
</EX_ADT_AMT>
</tt:d-cond>
<tt:d-cond frq="*">
<EX_ADT_NUM>
<tt:value ref="$EX_CRG_INF.EX_ADT_NUM"/>
</EX_ADT_NUM>
</tt:d-cond>
</EX_CRG_INF>
</tt:loop>
<tt:d-cond frq="*">
<TTL_RAT>
<tt:value ref="$HTL_RAT_INF.TTL_RAT"/>
</TTL_RAT>
</tt:d-cond>
<tt:d-cond frq="*">
<TTL_RAT_DTL>
<tt:value ref="$HTL_RAT_INF.TTL_RAT_DTL"/>
</TTL_RAT_DTL>
</tt:d-cond>
<tt:d-cond frq="*">
<BAS_AMT>
<tt:value ref="$HTL_RAT_INF.BAS_AMT"/>
</BAS_AMT>
</tt:d-cond>
</HTL_RAT_INF>
</tt:loop>
</HTL_ITM>
</tt:loop>
<tt:d-cond frq="*">
<ITM_COU>
<tt:value ref="$HTL_SEG_INF.ITM_COU"/>
</ITM_COU>
</tt:d-cond>
</HTL_SEG_INF>
</tt:loop>
<tt:loop name="CAR_SEG_INF" ref="DPW8.CAR_SEG_INF">
<CAR_SEG_INF>
<tt:d-cond frq="*">
<ITM_COU>
<tt:value ref="$CAR_SEG_INF.ITM_COU"/>
</ITM_COU>
</tt:d-cond>
<tt:loop name="CAR_ITM" ref="$CAR_SEG_INF.CAR_ITM">
<CAR_ITM>
<tt:d-cond frq="*">
<SEG_NUM>
<tt:value ref="$CAR_ITM.SEG_NUM"/>
</SEG_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<NUM_CAR>
<tt:value ref="$CAR_ITM.NUM_CAR"/>
</NUM_CAR>
</tt:d-cond>
<tt:d-cond frq="*">
<SEG_STA>
<tt:value ref="$CAR_ITM.SEG_STA"/>
</SEG_STA>
</tt:d-cond>
<tt:d-cond frq="*">
<CAR_VEN_COD>
<tt:value ref="$CAR_ITM.CAR_VEN_COD"/>
</CAR_VEN_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<CAR_VEN_NME>
<tt:value ref="$CAR_ITM.CAR_VEN_NME"/>
</CAR_VEN_NME>
</tt:d-cond>
<tt:d-cond frq="*">
<BKG_SOU>
<tt:value ref="$CAR_ITM.BKG_SOU"/>
</BKG_SOU>
</tt:d-cond>
<tt:loop name="LOC" ref="$CAR_ITM.LOC">
<LOC>
<tt:d-cond frq="*">
<LOC_COD>
<tt:value ref="$LOC.LOC_COD"/>
</LOC_COD>
</tt:d-cond>
<tt:d-cond frq="*">
<LOC_COD_EXT>
<tt:value ref="$LOC.LOC_COD_EXT"/>
</LOC_COD_EXT>
</tt:d-cond>
</LOC>
</tt:loop>
<tt:d-cond frq="*">
<ARR_INF>
<tt:value ref="$CAR_ITM.ARR_INF"/>
</ARR_INF>
</tt:d-cond>
<tt:d-cond frq="*">
<REN_NME>
<tt:value ref="$CAR_ITM.REN_NME"/>
</REN_NME>
</tt:d-cond>
<tt:d-cond frq="*">
<CFO_NUM>
<tt:value ref="$CAR_ITM.CFO_NUM"/>
</CFO_NUM>
</tt:d-cond>
<tt:d-cond frq="*">
<SPE_ASC_PRI>
<tt:value ref="$CAR_ITM.SPE_ASC_PRI"/>
</SPE_ASC_PRI>
</tt:d-cond>
<tt:d-cond frq="*">
<WRI_CFO>
<tt:value ref="$CAR_ITM.WRI_CFO"/>
</WRI_CFO>
</tt:d-cond>
<tt:loop name="PUP_INF" ref="$CAR_ITM.PUP_INF">
<PUP_INF>
<tt:d-cond frq="*">
<PUP_DAT>
<tt:value ref="$PUP_INF.PUP_DAT"/>
</PUP_DAT>
</tt:d-cond>
<tt:d-cond frq="*">
<PUP_DAY>
<tt:value ref="$PUP_INF.PUP_DAY"/>
</PUP_DAY>
</tt:d-cond>
<tt:d-cond frq="*">
<PUP_CIT>
<tt:value ref="$PUP_INF.PUP_CIT"/>
</PUP_CIT>
</tt:d-cond>
<tt:d-cond frq="*">
<PUP_LOC>
<tt:value ref="$PUP_INF.PUP_LOC"/>
</PUP_LOC>
</tt:d-cond>
</PUP_INF>
</tt:loop>
<tt:loop name="DRO_OFF_INF" ref="$CAR_ITM.DRO_OFF_INF">
<DRO_OFF_INF>
<tt:d-cond frq="*">
<DRO_OFF_DAT>
<tt:value ref="$DRO_OFF_INF.DRO_OFF_DAT"/>
</DRO_OFF_DAT>
&l
could anyone help me?
Similar Messages
-
After Upgrade to PI7.1 getting Simple transformation error
HI Experts,
I have an Issue, the scenario which i', working its working properly in DEV, QA, PROD in PI 7.0, We upgraded the system to PI7.1
Unknown Simple transformation error in converting XML to internal table
Application error in mapping program , error text: Unknown Simple transformation error in converting XML to internal table An exception has occurred.
Can any one suggest related notes are suggestion.
appericate in advance for the solutions which you all provide me
Thank you
Venkat AnilWhat kind of mapping is that ? Graphical, Java, XSLT, ABAP ?
The XML parser in 7.1 contains many subtle changes compared to 3.0
But this error sounds like a bug. Is there something special in the XML input ? is it wellformed-XML ?
CSY -
Simple transformation error in converting XML to internal table
Hi Team,
I have an issue, its working in Dev, QA, and Prod in PI 7.0, once we upgrade it to PI 7.1 I'm getting the below mention error,
Unknown Simple transformation error in converting XML to internal table
Application error in mapping program ZF_INT006_FILE_TO_SAP_FILE, error code: , error text: Unknown Simple transformation error in converting XML to internal table An exception has occurred.
Can any one suggest related notes are suggestion.
appericate in advance for the solutions which you all provide me
Thank you
Venkat AnilCheck the flag "use SAP XML toolkit" for the operation mapping and try, if that works then.
Check the flag for all XSLT and Java mappings which is migrated from PI 7.0 -
Simple Transformation XML to ABAP - error CX_ST_MATCH_ELEMENT
Hi all,
I have a problem with a transformation from xml to abap. My XML file (taken from a pdf file) is
<?xml version="1.0" encoding="iso-8859-1" ?>
- <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
- <asx:values>
<NETWORK>E60000000000</NETWORK>
<OPERAZIONE>0010</OPERAZIONE>
- <TABELLA>
- <ROW xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup">
<MANDT>300</MANDT>
<NETWORK>E60000000000</NETWORK>
<OPERAZIONE>0010</OPERAZIONE>
<ID_ACT>1</ID_ACT>
<DESC_ACT>ATTIVITÀ1</DESC_ACT>
<LONG_TXT></LONG_TXT>
<MAKE_BUY></MAKE_BUY>
<WP></WP>
<EVENTO_TECH></EVENTO_TECH>
<TIPO_LEGAME></TIPO_LEGAME>
<CONSEGNA></CONSEGNA>
</ROW>
- <ROW xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup">
<MANDT>300</MANDT>
<NETWORK>E60000000000</NETWORK>
<OPERAZIONE>0010</OPERAZIONE>
<ID_ACT>2</ID_ACT>
<DESC_ACT>ATTIVITÀ2</DESC_ACT>
<LONG_TXT>ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2</LONG_TXT>
<MAKE_BUY>M</MAKE_BUY>
<WP></WP>
<EVENTO_TECH></EVENTO_TECH>
<TIPO_LEGAME></TIPO_LEGAME>
<CONSEGNA></CONSEGNA>
</ROW>
</TABELLA>
</asx:values>
</asx:abap>
my transformation is
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"></tt:root>
<tt:root name="NETWORK"></tt:root>
<tt:root name="OPERAZIONE"></tt:root>
<tt:template>
<abap>
<values>
<network>
<tt:value ref="NETWORK"></tt:value>
</network>
<operazione>
<tt:value ref="OPERAZIONE"></tt:value>
</operazione>
<tabella>
<tt:loop ref=".ROOT" name="line">
<mandt>
<tt:value ref="$line.mandt"></tt:value>
</mandt>
<network>
<tt:value ref="$line.network"></tt:value>
</network>
<OPERAZIONE>
<tt:value ref="$line.OPERAZIONE"></tt:value>
</OPERAZIONE>
<ID_ACT>
<tt:value ref="$line.ID_ACT"></tt:value>
</ID_ACT>
<DESC_ACT>
<tt:value ref="$line.DESC_ACT"></tt:value>
</DESC_ACT>
<LONG_TXT>
<tt:value ref="$line.LONG_TXT"></tt:value>
</LONG_TXT>
<MAKE_BUY>
<tt:value ref="$line.MAKE_BUY"></tt:value>
</MAKE_BUY>
<WP>
<tt:value ref="$line.WP"></tt:value>
</WP>
<EVENTO_TECH>
<tt:value ref="$line.EVENTO_TECH"></tt:value>
</EVENTO_TECH>
<TIPO_LEGAME>
<tt:value ref="$line.TIPO_LEGAME"></tt:value>
</TIPO_LEGAME>
<CONSEGNA>
<tt:value ref="$line.CONSEGNA"></tt:value>
</CONSEGNA>
</tt:loop>
</tabella>
</values>
</abap>
</tt:template>
</tt:transform>
when I execute my code
the system dump with this error
ST_MATCH_FAIL
excep. CX_ST_MATCH_ELEMENT
TRY.
CALL TRANSFORMATION ('ZT_NETWORK')
SOURCE XML lv_xml_data_string
RESULT network = l_network
operazione = l_operazione
root = it_data_tmp.
CATCH cx_sy_conversion_data_loss .
CATCH cx_xslt_exception INTO xslt_error.
xslt_message = xslt_error->get_text( ).
WRITE:/ xslt_message .
ENDTRY.
Any help?
thanks
enzoEnzo Porcasi wrote:
> I have a problem with a transformation from xml to abap. My XML file (taken from a pdf file) is
>
<?xml version="1.0" encoding="iso-8859-1" ?>
> <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
> <asx:values>
Your XML is strange, it looks like a mix of pdf form content (xfa) and identity transformation (asx).
Could you explain more ?
Anyway, I tried to find out the errors (not only cx_st_match_element, that was just a catch missing), it works with the following program. Here are the main issues I have found :
- always catch exception class cx_st_error when you use simple transformations (it contains cx_st_match_element and all other simple transformation exceptions)
- xml "asx:abap" and "asx:values" in your input XML are useless, they are only used by identity transformation ("ID"); you may keep them if you want, but I advise you to see why they are in the xml !
- Use same case in your tags (if xml contains in the transformation so that it corresponds to the input XML
- I renamed all abap names with prefix ABAP_ so that to clearly differentiate xml tags and abap field names (so that it is more easy to understand, for every sdn reader; I hope it will help as I didn't find many threads in the forum).
Simple transformation :
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ABAP_NETWORK"></tt:root>
<tt:root name="ABAP_OPERAZIONE"></tt:root>
<tt:root name="ABAP_TABELLA"></tt:root>
<tt:template>
<ROOT>
<NETWORK>
<tt:value ref=".ABAP_NETWORK"></tt:value>
</NETWORK>
<OPERAZIONE>
<tt:value ref=".ABAP_OPERAZIONE"></tt:value>
</OPERAZIONE>
<TABELLA>
<tt:loop ref=".ABAP_TABELLA" name="line">
<ROW>
<MANDT>
<tt:value ref="$line.ABAP_MANDT"></tt:value>
</MANDT>
<NETWORK>
<tt:value ref="$line.ABAP_NETWORK"></tt:value>
</NETWORK>
<OPERAZIONE>
<tt:value ref="$line.ABAP_OPERAZIONE"></tt:value>
</OPERAZIONE>
<ID_ACT>
<tt:value ref="$line.ABAP_ID_ACT"></tt:value>
</ID_ACT>
<DESC_ACT>
<tt:value ref="$line.ABAP_DESC_ACT"></tt:value>
</DESC_ACT>
<LONG_TXT>
<tt:value ref="$line.ABAP_LONG_TXT"></tt:value>
</LONG_TXT>
<MAKE_BUY>
<tt:value ref="$line.ABAP_MAKE_BUY"></tt:value>
</MAKE_BUY>
<WP>
<tt:value ref="$line.ABAP_WP"></tt:value>
</WP>
<EVENTO_TECH>
<tt:value ref="$line.ABAP_EVENTO_TECH"></tt:value>
</EVENTO_TECH>
<TIPO_LEGAME>
<tt:value ref="$line.ABAP_TIPO_LEGAME"></tt:value>
</TIPO_LEGAME>
<CONSEGNA>
<tt:value ref="$line.ABAP_CONSEGNA"></tt:value>
</CONSEGNA>
</ROW>
</tt:loop>
</TABELLA>
</ROOT>
</tt:template>
</tt:transform>
Program and XML included :
REPORT zsro2.
DATA l_network TYPE string.
DATA l_operazione TYPE string.
DATA : BEGIN OF lt_data_tmp OCCURS 0,
abap_mandt TYPE string,
abap_network TYPE string,
abap_operazione TYPE string,
abap_id_act TYPE string,
abap_desc_act TYPE string,
abap_long_txt TYPE string,
abap_make_buy TYPE string,
abap_wp TYPE string,
abap_evento_tech TYPE string,
abap_tipo_legame TYPE string,
abap_consegna TYPE string,
END OF lt_data_tmp.
DATA xslt_error TYPE REF TO cx_xslt_exception.
DATA lo_st_error TYPE REF TO cx_st_error.
DATA lv_xml_data_string TYPE string.
DATA xslt_message TYPE string.
DEFINE conc.
concatenate lv_xml_data_string &1 into lv_xml_data_string.
END-OF-DEFINITION.
*conc '<?xml version="1.0" encoding="iso-8859-1" ?>'.
*conc '<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">'.
*conc ' <asx:values>'.
conc ' <ROOT>'.
conc ' <NETWORK>E60000000000</NETWORK> '.
conc ' <OPERAZIONE>0010</OPERAZIONE> '.
conc ' <TABELLA>'.
conc ' <ROW xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup">'.
conc ' <MANDT>300</MANDT> '.
conc ' <NETWORK>E60000000000</NETWORK> '.
conc ' <OPERAZIONE>0010</OPERAZIONE> '.
conc ' <ID_ACT>1</ID_ACT> '.
conc ' <DESC_ACT>ATTIVITÀ1</DESC_ACT> '.
conc ' <LONG_TXT></LONG_TXT> '.
conc ' <MAKE_BUY></MAKE_BUY> '.
conc ' <WP></WP> '.
conc ' <EVENTO_TECH></EVENTO_TECH> '.
conc ' <TIPO_LEGAME></TIPO_LEGAME> '.
conc ' <CONSEGNA></CONSEGNA> '.
conc ' </ROW>'.
conc ' <ROW xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup">'.
conc ' <MANDT>300</MANDT> '.
conc ' <NETWORK>E60000000000</NETWORK> '.
conc ' <OPERAZIONE>0010</OPERAZIONE> '.
conc ' <ID_ACT>2</ID_ACT> '.
conc ' <DESC_ACT>ATTIVITÀ2</DESC_ACT> '.
conc ' <LONG_TXT>ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2 ATTIVITÀ2</LONG_TXT> '.
conc ' <MAKE_BUY>M</MAKE_BUY> '.
conc ' <WP></WP> '.
conc ' <EVENTO_TECH></EVENTO_TECH> '.
conc ' <TIPO_LEGAME></TIPO_LEGAME> '.
conc ' <CONSEGNA></CONSEGNA> '.
conc ' </ROW>'.
conc ' </TABELLA>'.
conc ' </ROOT>'.
*conc ' </asx:values>'.
*conc '</asx:abap>'.
DATA lv_xml_data_string_2 TYPE string.
TRY.
CALL TRANSFORMATION zsro
SOURCE
XML lv_xml_data_string
RESULT
abap_network = l_network
abap_operazione = l_operazione
abap_tabella = lt_data_tmp[].
CATCH cx_sy_conversion_data_loss .
CATCH cx_st_error INTO lo_st_error.
xslt_message = lo_st_error->get_text( ).
WRITE:/ xslt_message .
CATCH cx_xslt_exception INTO xslt_error.
xslt_message = xslt_error->get_text( ).
WRITE:/ xslt_message .
ENDTRY.
BREAK-POINT. -
Simple transformation XML to ABAP, runtime error: CX_ST_REF_ACCESS
Hi, all experts,
I got a runtime error CX_ST_REF_ACCESS, while I tried to use Simple Transformation to transfer XML-String to ABAP internal table.
Can anybody help me to fix the problem? Thanks very much. It's urgent.
The code of transformation like this:
<tt:root name="DATA"/>
<tt:template>
<node>
<tt:deserialize>
<tt:loop ref=".DATA" name="mdr_data">
<tt:attribute name="type">
<tt:value ref="$mdr_data.lf_type"/>
</tt:attribute>
<tt:attribute name="objid">
<tt:value ref="$mdr_data.lf_objid"/>
</tt:attribute>
<tt:attribute name="name" value-ref="$mdr_data.lf_name"/>
<tt:attribute name="short" value-ref="$mdr_data.lf_short"/>
</tt:loop>
</tt:deserialize>
</node>
</tt:template>
The Data-structure in my Report:
DATA: BEGIN OF ls_mdr_data,
lf_type TYPE /ehr/ct_dt_bo_type,
lf_objid TYPE realo,
lf_name TYPE stext,
lf_short TYPE short_d,
END OF ls_mdr_data,
lt_result_data like TABLE OF ls_mdr_data.
If I call the transformation use the XML-String like:
<node type="MDRFOLDER" objid="50016122" name="MDR Root Folder" short="MDR Root"/>
I got the error CX_ST_REF_ACCESS:
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_ST_REF_ACCESS', was not caught and
therefore caused a runtime error.
The reason for the exception is:
The goal was to access variable "LF_TYPE". However, this access was not
possible.Hi, all experts,
I got a runtime error CX_ST_REF_ACCESS, while I tried to use Simple Transformation to transfer XML-String to ABAP internal table.
Can anybody help me to fix the problem? Thanks very much. It's urgent.
The code of transformation like this:
<tt:root name="DATA"/>
<tt:template>
<node>
<tt:deserialize>
<tt:loop ref=".DATA" name="mdr_data">
<tt:attribute name="type">
<tt:value ref="$mdr_data.lf_type"/>
</tt:attribute>
<tt:attribute name="objid">
<tt:value ref="$mdr_data.lf_objid"/>
</tt:attribute>
<tt:attribute name="name" value-ref="$mdr_data.lf_name"/>
<tt:attribute name="short" value-ref="$mdr_data.lf_short"/>
</tt:loop>
</tt:deserialize>
</node>
</tt:template>
The Data-structure in my Report:
DATA: BEGIN OF ls_mdr_data,
lf_type TYPE /ehr/ct_dt_bo_type,
lf_objid TYPE realo,
lf_name TYPE stext,
lf_short TYPE short_d,
END OF ls_mdr_data,
lt_result_data like TABLE OF ls_mdr_data.
If I call the transformation use the XML-String like:
<node type="MDRFOLDER" objid="50016122" name="MDR Root Folder" short="MDR Root"/>
I got the error CX_ST_REF_ACCESS:
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_ST_REF_ACCESS', was not caught and
therefore caused a runtime error.
The reason for the exception is:
The goal was to access variable "LF_TYPE". However, this access was not
possible. -
Error in Simple transformation
Hi Guys,
I am very new to Simple transformation,there is an error in my ST,but I have no idea how to fix it,Please take a look at my simple transformation file.Thanks.
I want to deseralize the XML file to ABAp Structure
my xml file is like:
<Content>
<BookEntity name="A">
<Id>01</id>
<Title>My Book A</Title>
</BookEntity>
<BookEntity name="B">
<Id>02</id>
<Title>My Book B</Title>
<Author>Jamy</Author>
</BookEntity>
<BookEntity name="C">
<Id>03</id>
<Author>L</Author>
<Year>2007</Year>
<Group>C</Group>
</BookEntity>
</Content>
my structure likes:
DATA: BEGIN OF content,
BEGIN OF bookentity,
name TYPE string,
id TYPE string,
title TYPE string,
author TYPE string,
year TYPE string,
group TYPE string,
END OF contextentity,
END OF content.
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT" />
<tt:template>
<Content>
<tt:loop ref=".ROOT" name="content" >
<BookEntity tt:ref="bookentity">
<tt:attribute name="name" value-ref="name" />
<tt:apply name="SUB">
<b> <tt:with-parameter name="NAME" ref="name"/></b> <--Error here
</tt:apply>
</ContextEntity>
</tt:loop>
</Content>
</tt:template>
<tt:template name="SUB">
<tt:context>
<tt:parameter name="NAME"/>
</tt:context>
<tt:switch-var>
<tt:cond-var check="NAME='A'">
<Id>
<tt:value ref="id"/>
</Id>
<Title>
<tt:value ref="title"/>
</Title>
</tt:cond-var>
<tt:cond-var check="NAME='B'">
<Id>
<tt:value ref="id"/>
</Id>
<Title>
<tt:value ref="title"/>
</Title>
<Author>
<tt:value ref="author"/>
</Author>
</tt:cond-var>
<tt:cond-var check="NAME='C'">
<Id>
<tt:value ref="id"/>
</Id>
<Author>
<tt:value ref="author"/>
</Author>
<Year>
<tt:value ref="year"/>
</Year>
<Group>
<tt:value ref="group"/>
</Group>
</tt:cond-var>
</tt:switch-var>
</tt:template>
</tt:transform>Check the flag "use SAP XML toolkit" for the operation mapping and try, if that works then.
Check the flag for all XSLT and Java mappings which is migrated from PI 7.0 -
Hi Experts ,
i have a scenario proxy to soap where i am getting error while getting the response .
we are sending the request successfully and getting response .some times we are getting in proxy level error below
PARSE_APPLICATION_DATA Error during XML => ABAP conversion: Response Message; CX_ST_DESERIALIZATION_ERROR in /1SAI/SAS0446CC11CC6EC1AD4789 Line 24 An error occurred when deserializing in the simple transformation program /1SAI/SAS0446CC11CC6EC1AD4789 (Cha
Please help us to fix this bug in proxy response.
Regards
RaviHello Ravinder,
Can you please post the complete stack trace, it seems to be some fields are getting truncated i,e data sent from the program to the proxy object might be violating some length restrictions.
Please check your message interface field lengths and what is being passed to the proxy.
Regards,
Ravi. -
Error occured while deserializing simple transformation program
Hi,
In the SOA Manager( In the CRM PRD system ), when I check the payload trace, the Request is blank and in the Response I find that there are few exceptions
1) CX_SY_CONVERSION_DATA_LOSS: XSLT exception - An error occured while deserializing the simple transformation
Data loss occured when converting ...
How do I know what was the input provided by the user and how to I use the transformation generated and identify the cause of the problem. in the PRD system What is the use of XSLT transformation?
Thanks,
Chakram GovindarajanHello Chakram,
We are facing the same issue , but in GRC & Remedy Integration.
Will you please let me know what did you do to resolve this issue if it has got resolved ??
Thanks in advance.
Regards,
Victor -
Simple Transformation - XML to Internal Table Error
I have a webservice call that returns XML. I need to transform a portion of the response to an internal table, but my simple transformation is not working with loop processing. I have read through most posts regarding the topic but they're either too old or related to serialization. There aren't any exceptions thrown, but I don't get any data in the internal table (PAPERWORK root). Below are some code snippets. Any ideas on the problem with the XSLT template? Thanks.
Sample XML:
<?xml version="1.0" encoding="utf-8" ?>
<PrintVersionDataSet>
<Result>
<ReturnCode>W</ReturnCode>
<ReturnMessage>There are reports with later version(s)</ReturnMessage>
</Result>
<Paperwork>
<ReportCode>CVR</ReportCode>
<ReportName>Cover Sheet</ReportName>
<Version>2</Version>
<PrintedDateTime>2009-05-01T09:54:04.1-05:00</PrintedDateTime>
</Paperwork>
<Paperwork>
<ReportCode>SPS</ReportCode>
<ReportName>Sponsor Summary</ReportName>
<Version>2</Version>
<PrintedDateTime>2009-05-01T09:54:04.99-05:00</PrintedDateTime>
</Paperwork>
</PrintVersionDataSet>
XSLT Code:
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="RESULT"/>
<tt:root name="PAPERWORK"/>
<tt:template>
<PrintVersionDataSet>
<Result tt:ref="RESULT">
<ReturnCode>
<tt:value ref="RETURNCODE"/>
</ReturnCode>
<ReturnMessage>
<tt:value ref="RETURNMESSAGE"/>
</ReturnMessage>
</Result>
<tt:deserialize>
<tt:loop ref=".PAPERWORK">
<Paperwork>
<ReportCode>
<tt:value ref="REPORTCODE"/>
</ReportCode>
<ReportName>
<tt:value ref="REPORTNAME"/>
</ReportName>
<Version>
<tt:value ref="VERSION"/>
</Version>
<PrintedDateTime>
<tt:value ref="PRINTEDDATETIME"/>
</PrintedDateTime>
</Paperwork>
</tt:loop>
</tt:deserialize>
</PrintVersionDataSet>
</tt:template>
</tt:transform>
ABAP Call to Transform Data:
TRY.
CALL TRANSFORMATION Z_GA_PAPERWORK_VERS_WEBSVC
SOURCE XML LS_RESPONSE-VERIFY_PRINT_VERSION_RESULT
RESULT RESULT = LS_RESULT
PAPERWORK = LT_PAPERWORK.
CATCH CX_ROOT INTO ROOT_EXCEPTION.
CALL METHOD ROOT_EXCEPTION->IF_MESSAGE~GET_TEXT
RECEIVING
RESULT = LV_MESSAGE.
ENDTRY.Upon further inspection and testing with a simple file and program, I can see that the XML structure isn't quite correct for the loop process. There needs to be a single <PAPERWORK> node, instead of one for each table line in the file. This should allow the loop to execute properly after a slight adjustment to the XSLT template.
-
Simple Transformation to deserialize an XML file into ABAP data structures?
I'm attempting to write my first simple transformation to deserialize
an XML file into ABAP data structures and I have a few questions.
My simple transformation contains code like the following
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates"
xmlns:pp="http://www.sap.com/abapxml/types/defined" >
<tt:type name="REPORT" line-type="?">
<tt:node name="COMPANY_ID" type="C" length="10" />
<tt:node name="JOB_ID" type="C" length="20" />
<tt:node name="TYPE_CSV" type="C" length="1" />
<tt:node name="TYPE_XLS" type="C" length="1" />
<tt:node name="TYPE_PDF" type="C" length="1" />
<tt:node name="IS_NEW" type="C" length="1" />
</tt:type>
<tt:root name="ROOT2" type="pp:REPORT" />
<QueryResponse>
<tt:loop ref="ROOT2" name="line">
<QueryResponseRow>
<CompanyID>
<tt:value ref="$line.COMPANY_ID" />
</CompanyID>
<JobID>
<tt:value ref="$line.JOB_ID" />
</JobID>
<ExportTypes>
<tt:loop>
<ExportType>
I don't know what to do here (see item 3, below)
</ExportType>
</tt:loop>
</ExportTypes>
<IsNew>
<tt:value ref="$line.IS_NEW"
map="val(' ') = xml('false'), val('X') = xml('true')" />
</IsNew>
</QueryResponseRow>
</tt:loop>
</QueryResponse>
</tt:loop>
1. In a DTD, an element can be designated as occurring zero or one
time, zero or more times, or one or more times. How do I write the
simple transformation to accommodate these possibilities?
2. In trying to accommodate the "zero or more times" case, I am trying
to use the <tt:loop> instruction. It occurs several layers deep in the
XML hierarchy, but at the top level of the ABAP table. The internal
table has a structure defined in the ABAP program, not in the data
dictionary. In the simple transformation, I used <tt:type> and
<tt:node> to define the structure of the internal table and then
tried to use <tt:loop ref="ROOT2" name="line"> around the subtree that
can occur zero or more times. But every variation I try seems to get
different errors. Can anyone supply a working example of this?
3. Among the fields in the internal table, I've defined three
one-character fields named TYPE_CSV, TYPE_XLS, and TYPE_PDF. In the
XML file, I expect zero to three elements of the form
<ExportType exporttype='csv' />
<ExportType exporttype='xls' />
<ExportType exporttype='pdf' />
I want to set field TYPE_CSV = 'X' if I find an ExportType element
with its exporttype attribute set to 'csv'. I want to set field
TYPE_XLS = 'X' if I find an ExportType element with its exporttype
attribute set to 'xls'. I want to set field TYPE_PDF = 'X' if I find
an ExportType element with its exporttype attribute set to 'pdf'. How
can I do that?
4. For an element that has a value like
<ErrorCode>123</ErrorCode>
in the simple transformation, the sequence
<ErrorCode> <tt:value ref="ROOT1.CODE" /> </ErrorCode>
seems to work just fine.
I have other situations where the XML reads
<IsNew value='true' />
I wanted to write
<IsNew>
<tt:value ref="$line.IS_NEW"
map="val(' ') = xml('false'), val('X') = xml('true')" />
</IsNew>
but I'm afraid that the <tt:value> fails to deal with the fact that in
the XML file the value is being passed as the value of an attribute
(named "value"), rather than the value of the element itself. How do
you handle this?Try this code below:
data l_xml_table2 type table of xml_line with header line.
W_filename - This is a Path.
if w_filename(02) = '
open dataset w_filename for output in binary mode.
if sy-subrc = 0.
l_xml_table2[] = l_xml_table[].
loop at l_xml_table2.
transfer l_xml_table2 to w_filename.
endloop.
endif.
close dataset w_filename.
else.
call method cl_gui_frontend_services=>gui_download
exporting
bin_filesize = l_xml_size
filename = w_filename
filetype = 'BIN'
changing
data_tab = l_xml_table
exceptions
others = 24.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif. -
Upload xml file to internal table only using simple transformation
Hi Friends
How to write transformation code for the following xml data.. Please let me know immedately if any one know..
I have written as following but i encountered an eror staating -
Iam facing the following error
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_ST_REF_ACCESS', was not caught in
procedure "UPLOAD_XML" "(FORM)", nor was it propagated by a RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The goal was to access variable "ROOT1". However, this access was not
possible.
Go through my xml file , the code and code in simple transformation.. Please reply(transformation code) me as soon as possible
- <Negara>
- <item>
- <COUNTRY>
<MANDT>600</MANDT>
<ZCODE>500</ZCODE>
<ZDESC>Pening Lalat</ZDESC>
<ZSAPCD>T1</ZSAPCD>
</COUNTRY>
</item>
- <item>
- <COUNTRY>
<MANDT>600</MANDT>
<ZCODE>600</ZCODE>
<ZDESC>Pening Lalat2</ZDESC>
<ZSAPCD>T2</ZSAPCD>
</COUNTRY>
</item>
</Negara>
DATA : BEGIN OF XDATA OCCURS 0,
STR(255) TYPE C,
END OF XDATA.
DATA: XMLUPL TYPE string .
DATA : BEGIN OF ITAB OCCURS 0,
MANDT(3) TYPE C,
ZCODE(3) TYPE C,
ZDESC(15) TYPE C,
ZSAPCD(2) TYPE C,
END OF ITAB.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\country.xml'
FILETYPE = 'BIN'
TABLES
DATA_TAB = XDATA.
LOOP AT XDATA.
CONCATENATE XMLUPL XDATA-STR INTO XMLUPL.
ENDLOOP.
CALL TRANSFORMATION ('Y_XMLCTRY')
SOURCE XML XMLUPL
result xml = ITAB[].
BREAK-POINT.
<?sap.transform simple?>
<tt:transform template="temp1"
xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT1"/>
<tt:root name="ROOT2"/>
<tt:template name="temp1">
<Negara>
<tt:loop ref=".ROOT1" name="i">
<item>
<tt:loop ref=".ROOT2" name="c">
<COUNTRY>
<MANDT>
<tt:value ref="$c.nummer" />
</MANDT>
<ZCODE>
<tt:value ref="$c.nummer" />
</ZCODE>
<ZDESC>
<tt:value ref="$c.name" />
</ZDESC>
<ZSAPCD>
<tt:value ref="$c.name" />
</ZSAPCD>
</COUNTRY>
</tt:loop>
</item>
</tt:loop>
</Negara>
</tt:template>
</tt:transform>
Thanking You
DeviHi Friends
How to write transformation code for the following xml data.. Please let me know immedately if any one know..
I have written as following but i encountered an eror staating -
Iam facing the following error
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_ST_REF_ACCESS', was not caught in
procedure "UPLOAD_XML" "(FORM)", nor was it propagated by a RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The goal was to access variable "ROOT1". However, this access was not
possible.
Go through my xml file , the code and code in simple transformation.. Please reply(transformation code) me as soon as possible
- <Negara>
- <item>
- <COUNTRY>
<MANDT>600</MANDT>
<ZCODE>500</ZCODE>
<ZDESC>Pening Lalat</ZDESC>
<ZSAPCD>T1</ZSAPCD>
</COUNTRY>
</item>
- <item>
- <COUNTRY>
<MANDT>600</MANDT>
<ZCODE>600</ZCODE>
<ZDESC>Pening Lalat2</ZDESC>
<ZSAPCD>T2</ZSAPCD>
</COUNTRY>
</item>
</Negara>
DATA : BEGIN OF XDATA OCCURS 0,
STR(255) TYPE C,
END OF XDATA.
DATA: XMLUPL TYPE string .
DATA : BEGIN OF ITAB OCCURS 0,
MANDT(3) TYPE C,
ZCODE(3) TYPE C,
ZDESC(15) TYPE C,
ZSAPCD(2) TYPE C,
END OF ITAB.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\country.xml'
FILETYPE = 'BIN'
TABLES
DATA_TAB = XDATA.
LOOP AT XDATA.
CONCATENATE XMLUPL XDATA-STR INTO XMLUPL.
ENDLOOP.
CALL TRANSFORMATION ('Y_XMLCTRY')
SOURCE XML XMLUPL
result xml = ITAB[].
BREAK-POINT.
<?sap.transform simple?>
<tt:transform template="temp1"
xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT1"/>
<tt:root name="ROOT2"/>
<tt:template name="temp1">
<Negara>
<tt:loop ref=".ROOT1" name="i">
<item>
<tt:loop ref=".ROOT2" name="c">
<COUNTRY>
<MANDT>
<tt:value ref="$c.nummer" />
</MANDT>
<ZCODE>
<tt:value ref="$c.nummer" />
</ZCODE>
<ZDESC>
<tt:value ref="$c.name" />
</ZDESC>
<ZSAPCD>
<tt:value ref="$c.name" />
</ZSAPCD>
</COUNTRY>
</tt:loop>
</item>
</tt:loop>
</Negara>
</tt:template>
</tt:transform>
Thanking You
Devi -
Simple Transformation XML to ABAP Content of tag with subtrees to string field
Hi,
I have an requirement in which I have to do a transformation from an XML file to an structure.
I need get the value of a tag that have subtrees and move that to a field in my structure.
Example:
<TAG1>value1</TAG1>
<TAG2>value2</TAG2>
<TAG3>
<TAG4>value4</TAG4>
<TAG5>value5</TAG5>
</TAG3>
Result expected in ABAP Structure:
field1 -> tag1
field2 -> tag2
field3 -> <TAG4>value4</TAG4><TAG5>value5</TAG5>
The contents of the tag TAG3 is variable, so I want to store it as a string.
Can I make this with Simple Transformation?
In my tests I can move only the value of each child tag for the given field structure.
This syntax dont work:
<TAG3 tt:value-ref="STRUCTURE.FIELD3"/>
Thanks and Regards,
Miguel MottaHi Miguel
Have a look at below snippets. Here I have tried to escape the text inside TAG3 so that it gets treated as single node during transformation.
ABAP code
DATA: BEGIN OF result,
col1 TYPE string,
col2 TYPE string,
col3 TYPE string,
END OF result.
DATA: xml_string TYPE string VALUE
'<ROOT> <TAG1>value1</TAG1> <TAG2>value2</TAG2> <TAG3> <TAG4>value4</TAG4> <TAG5>value5</TAG5> </TAG3> </ROOT>',
part1 TYPE string,
part2 TYPE string,
part3 TYPE string.
* Escape the text inside TAG3 tag
FIND REGEX '(.*<TAG3>)(.*)(</TAG3>.*)' IN xml_string SUBMATCHES part1 part2 part3.
IF sy-subrc EQ 0.
part2 = escape( val = part2 format = cl_abap_format=>e_xml_text ).
* REPLACE ALL OCCURRENCES OF '<' IN part2 WITH '<'.
* REPLACE ALL OCCURRENCES OF '>' IN part2 WITH '>'.
xml_string = part1 && part2 && part3.
ENDIF.
TRY.
* Display xml
cl_abap_browser=>show_xml( EXPORTING xml_string = xml_string ).
* Deserialization
CALL TRANSFORMATION zmtest
SOURCE XML xml_string
RESULT para = result.
* Check result
WRITE:/ 'COL1=', result-col1,
/ 'COL2=', result-col2,
/ 'COL3=', result-col3.
CATCH cx_st_error.
* Error handling
MESSAGE 'Error in Simple Transformation'
TYPE 'I' DISPLAY LIKE 'E'.
ENDTRY.
Transformation code
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" template="temp" version="0.1">
<tt:root name="PARA"/>
<tt:template name="temp">
<ROOT>
<TAG1>
<tt:value ref="PARA.COL1"/>
</TAG1>
<TAG2>
<tt:value ref="PARA.COL2"/>
</TAG2>
<TAG3>
<tt:value ref="PARA.COL3"/>
</TAG3>
</ROOT>
</tt:template>
</tt:transform> -
Simple Transformation with very long XML element names
I am trying to write a program to deserialize XML documents using the Simple Transformation technique. There are many optional elements in the XML document, so I need to have conditional statements statements to avoid trying to process elements that are not in the document. The XML document, however, has several Element Names that are greater than 30 characters in length. The Simple Transformation technique seems to require ABAP data dictionary structures that mirror the schema of the XML document. But one cannot create structure component names that are greater than 30 characters in length. We don't have any control over the XML schema as the XML documents come from the US government. The ST fragment below shows the statement that I want to write, but since the ABAP Structure PlasticCardInformationGroup cannot have a component AuthorizationResponseInformation, the ST syntax checker yields an "Illegal Reference ADDITIONALPLASTICCARDINFORMATION" error message.
Does anyone know a way to avoid this error?
<tt:d-cond check="exist(TRS_TradingPartner_Agreement.TRS_FinancialTransaction.PlasticCardInformationGroup.AdditionalPlasticCardInformation)">
<ns2:AdditionalPlasticCardInformation>
<tt:attribute name="CardNetworkType" value-ref="TRS_TRADINGPARTNER_AGREEMENT.TRS_FINANCIALTRANSACTION.PLASTICCARDINFORMATIONGROUP.ADDITIONALPLASTICCARDINFORMATI.CARDNETWORKTYPE"/>
<tt:attribute name="DraftLocatorNumber" value-ref="TRS_TRADINGPARTNER_AGREEMENT.TRS_FINANCIALTRANSACTION.PLASTICCARDINFORMATIONGROUP.ADDITIONALPLASTICCARDINFORMATI.DRAFTLOCATORNUMBER"/>
</ns2:AdditionalPlasticCardInformation>could anyone help me?
-
XML to Nested Itab using Simple Transformation
Hi there is there any experts there who can show me an example of Transforming a XML to a Nested Internal Table using Simple Transformation?
I have tried this the program from the blog by
Tobias Trapp
<a href="/people/tobias.trapp/blog/2005/05/04/xml-processing-in-abap-part-1:///people/tobias.trapp/blog/2005/05/04/xml-processing-in-abap-part-1
but I have encountered this error
Runtime Errors ST_REF_ACCESS
Exception CX_ST_REF_ACCESS
1 <?sap.transform simple?>
2 <tt:transform template="temp1"
3 xmlns:tt="http://www.sap.com/transformation-templates">
4 <tt:root name="ROOT"/>
5 <tt:template name="temp1">
>>>> <tt:loop ref=".ROOT" name="a">
7 <A>
8 <name>
9 <tt:value ref="$a.name" />
10 </name>
11 <ZLS>
12 <tt:loop ref="$a.zls" name="z">
13 <Z>
14 <tt:value ref="$z.nummer" />
15 </Z>
16 </tt:loop>
17 </ZLS>
18 </A>
19 </tt:loop>
20 </tt:template>
21 </tt:transform>
Anyone knows whats wrong?I had to pass an XSLT program in the transformation statement.
-
!CDATA[]] in ST (Simple Transformation)
Hi,
How to generate a CDATA section in an xml element with simple transformation. in xslt a have already a solution but i need it in st.
rgds
ilanA workaround would be to create GUIDs and replace them after the transformation with your wanted string...
" Create GUID
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_32 = lv_guid.
" lv_guid is somewhere in your itab lt_root
" Call Transformation
CALL TRANSFORMATION my_transformation
SOURCE root = lt_root
RESULT XML lv_xml.
" Replace GUID
lv_string = 'my replacement string'.
REPLACE lv_guid WITH lv_string INTO lv_xml.
IF sy-subrc NE 0.
" Error
ENDIF.
Hope this helps...
Maybe you are looking for
-
I've gone into iTunes. Upgraded my keynote to 09 (ie with the blue icon instead of the brown wooden one) but still the old (brown wooden) icon appears on my dock. When i click on keynotes they won't open? I've got keynote already on my other mac and
-
Material blocked due to a physical inventory
Hello, I have an issue. I have done a stock take via MI01, MI21, MI04 and finally MI20! When I afterwards create a delivery with one of that part that was counted it gives me an error message saying: M7100 - Material xxx blocked due to a physical inv
-
Printing over wireless & wired network. 3 Macs.
I think you can do this not sure. I've got the AirPort Express connected to a wired router for internet. The printer is plugged into the AE. How do I get the other two Macs (connected to router; wired) to add the printer? Is this possible? Thanks.
-
Mac OS 10.9.4 . . . Trying to update my CC apps to latest versions of CC (2014) InDesign, Illustrator, Photoshop (and even Bridge CC). I keep getting messages specific to each update –e.g. InDesign CC (2014) Update, Please close the following applica
-
I purchased the Inspiron 7537 (i7 4500U, 8gb RAM, Nvidia GT750M). Issues: 1. Hiss noise from headphone socket (Same as my Studio 1558, DELL's RnD is a bullshit) 2. Wifi range is low, connectivity is not good (Cant blame dell, cos same issues with oth