Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Convert XML Code into Transformation

0 Likes
2,823

Hi,

I am currently trying to convert this xml string back to my structure but i have been unsuccessful so far using tcode STRANS. Initially i keep getting illegal operation but now i manage to retrieve only part of my xml data.

my XML string:


<?xml version="1.0" ?> 
- <Root>
- <Transaction_Status>
  <Status>Success</Status> 
  <Description>No. of records found = 6</Description> 
  </Transaction_Status>
- <Processing_Exceptions>
- <Report>
- <Record>
  <Reason>Validation failed for pan field</Reason> 
  <Field_Name>ID_PAN_CARD</Field_Name> 
  <Field_Value /> 
  </Record>
- <Record>
  <Reason>Validation failed for passport field</Reason> 
  <Field_Name>ID_PASSPORT</Field_Name> 
  <Field_Value /> 
  </Record>
- <Record>
  <Reason>Father name field is null</Reason> 
  <Field_Name>NULL</Field_Name> 
  <Field_Value /> 
  </Record>
- <Record>
  <Reason>Pin field is null</Reason> 
  <Field_Name>NULL</Field_Name> 
  <Field_Value /> 
  </Record>
- <Record>
  <Reason>Invalid Mobile Number</Reason> 
  <Field_Name>MOBILE_NUM</Field_Name> 
  <Field_Value /> 
  </Record>
- <Record>
  <Reason>CITYISNULL</Reason> 
  <Field_Name>DC_CITY</Field_Name> 
  <Field_Value /> 
  </Record>
  </Report>
  <Reject /> 
  </Processing_Exceptions>
- <Output>
- <Record>
  <search_id>2861</search_id> 
  <MATCHED_CUSTOMER_ID>100268</MATCHED_CUSTOMER_ID> 
  <defined_match_criteria>[INDV_NAME:70]</defined_match_criteria> 
  <actual_matched_criteria>(INDV_NAME : 96.15 )</actual_matched_criteria> 
  <CUSTOMER_ID>100268</CUSTOMER_ID> 
  <INDV_NAME>BIJENDER SINGH</INDV_NAME> 
  <FATHER_NAME /> 
  <CUR_CITY>DELHI</CUR_CITY> 
  <CUR_STATE>DELHI</CUR_STATE> 
  <CUR_PIN>110041</CUR_PIN> 
  <MOBILE_NUM /> 
  <ID_PAN_CARD /> 
  <CUR_PHONE /> 
  <BIRTH_DATE /> 
  </Record>
- <Record>
  <search_id>2861</search_id> 
  <MATCHED_CUSTOMER_ID>115993</MATCHED_CUSTOMER_ID> 
  <defined_match_criteria>[INDV_NAME:70]</defined_match_criteria> 
  <actual_matched_criteria>(INDV_NAME : 100.0 )</actual_matched_criteria> 
  <CUSTOMER_ID>115993</CUSTOMER_ID> 
  <INDV_NAME>BIRENDER SINGH</INDV_NAME> 
  <FATHER_NAME /> 
  <CUR_CITY>GURGAON</CUR_CITY> 
  <CUR_STATE>HARYANA</CUR_STATE> 
  <CUR_PIN>122001</CUR_PIN> 
  <MOBILE_NUM>9813736856</MOBILE_NUM> 
  <ID_PAN_CARD /> 
  <CUR_PHONE /> 
  <BIRTH_DATE>1979-08-26 00:00:00.0</BIRTH_DATE> 
  </Record>
 </Output>
  </Root>

Please help . Thanks in Advance.

Regards,

Nilesh

9 REPLIES 9
Read only

0 Likes
2,060

Any Help?...........

Read only

Former Member
0 Likes
2,060

This message was moderated.

Read only

Lukas_Weigelt
Active Contributor
0 Likes
2,060

What kind of Transformation are you using? (Post it here) and what does your structure which you want to convert your XML-File into look like? (post it here, as well..)

regards, Lukas

Read only

0 Likes
2,060

Hi Lukas,

Thanks for Reply.

I have using XSLT Transformation(Tcode : STRANS) .

Below field in my ABAP structure :

CUSTOMER_ID

INDV_NAME

CUR_CITY

CUR_STATE

CUR_PIN

MOBILE_NUM

ID_PAN_CARD

CUR_PHONE

BIRTH_DATE

Regards,

Nilesh

Read only

Former Member
0 Likes
2,060

have you confirmes your xml is valid?

Read only

Sandra_Rossi
Active Contributor
0 Likes
2,060

Hi,

It seems to be a very basic transformation, so why did you choose XSLT instead of ST? (SAP simple transformation)

Secondly, did you do an XSLT like the one below, and how did you call it from your ABAP program? Please paste it (XSLT + ABAP interesting parts, like data object declaration, CALL TRANSFORMATION) so that we can correct it.


...
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
  <asx:values>
    <xsl:for-each select="//Root/Output/Record">
      <item>
        <CUSTOMER_ID>
          <xsl:value-of select="CUSTOMER_ID"/>
        </CUSTOMER_ID>
        ...

Sandra

Read only

0 Likes
2,060

Hi Sandra,

Thanks for Reply.

I have create XSLT code like


<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<xsl:strip-space elements="*"/>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
  <asx:values>
    <xsl:for-each select="//Root/Output/Record">
      <item>
        <CUSTOMER_ID>
          <xsl:value-of select="CUSTOMER_ID"/>
        </CUSTOMER_ID>
        <INDV_NAME>
          <xsl:value-of select="INDV_NAME"/>
        </INDV_NAME>
        <FATHER_NAME>
          <xsl:value-of select="FATHER_NAME"/>
        </FATHER_NAME>
        <CUR_CITY>
          <xsl:value-of select="CUR_CITY"/>
        </CUR_CITY>
        <CUR_STATE>
          <xsl:value-of select="CUR_STATE"/>
        </CUR_STATE>
        <CUR_PIN>
          <xsl:value-of select="CUR_PIN"/>
        </CUR_PIN>
        <MOBILE_NUM>
          <xsl:value-of select="MOBILE_NUM"/>
        </MOBILE_NUM>
        <ID_PAN_CARD>
          <xsl:value-of select="ID_PAN_CARD"/>
        </ID_PAN_CARD>
        <CUR_PHONE>
          <xsl:value-of select="CUR_PHONE"/>
        </CUR_PHONE>
        <BIRTH_DATE>
          <xsl:value-of select="BIRTH_DATE"/>
        </BIRTH_DATE>
      </ITEM>
 </ABAP>
 </xsl:transform>    

and calling program like


............
TYPES: BEGIN OF i_det,
        CUSTOMER_ID(10),
        INDV_NAME(20),
        FATHER_NAME(20),
        CUR_CITY(15),
        CUR_STATE(15),
        CUR_PIN(06),
        MOBILE_NUM(10),
        ID_PAN_CARD(18),
        CUR_PHONE(10),
        BIRTH_DATE(10),
       END OF i_det.
DATA: i_data TYPE TABLE OF i_det,
      w_data type i_det.

DATA: xml_string TYPE string." type ref to cl_fx_reader .
DATA: xslt_error  TYPE REF TO cx_xslt_exception,
xslt_message  TYPE  string .
..................
.................

try .
    call transformation ('ZXSLT_CODE')
    source xml  xml_string
    result     i_data = i_data.
  catch cx_xslt_exception into xslt_error.
    xslt_message = xslt_error->get_text( ).
endtry.
.................

Waiting for Response.

Regards,

Nilesh

Read only

0 Likes
2,060

Hi,

Any Reply?

Regards,

Nilesh

Read only

0 Likes
2,060

Could you solve your problem in the already?