on 04-17-2012 1:56 PM
Hi
I have my structures as below
TYPES: BEGIN OF ty_photolib_internal,
purchase_id TYPE string,
user_id TYPE string,
client_id TYPE string,
END OF ty_photolib_internal.
TYPES: BEGIN OF ty_address,
street TYPE string,
postcode TYPE string,
city TYPE string,
country TYPE string,
END OF ty_address.
TYPES: BEGIN OF ty_cust_details,
company_name TYPE string,
account_name TYPE string,
sap_id TYPE string,
vat_registered TYPE string,
company_telephone TYPE string,
company_email TYPE string,
user_telephone TYPE string,
user_email TYPE string,
address TYPE ty_address,
END OF ty_cust_details.
TYPES: BEGIN OF ty_line_item,
number TYPE string,
internal_photo_id TYPE string,
quantity TYPE I,
elvis_id TYPE string,
title TYPE string,
net_price TYPE string,
usage_details TYPE string,
usage_date TYPE sy-datum,
license TYPE string,
license_options TYPE string,
END OF ty_line_item.
TYPES: BEGIN OF ty_line_items,
line_item TYPE ty_line_item,
END OF ty_line_items.
TYPES: BEGIN OF ty_photo,
requested_by TYPE string,
issued_at TYPE string,
order_type TYPE string,
purchase_order_number TYPE string,
sales_order_document_type TYPE string,
vat_no_if_applied TYPE string,
photo_library_internal TYPE ty_photolib_internal,
customer_details TYPE ty_cust_details,
line_items TYPE ty_line_items,
END OF ty_photo.
DATA: lt_ph1 type table of ty_photo,
ls_ph1 type ty_photo.
and my xslt program is below
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<xsl:template match="SALES_ORDER">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<SALES_ORDER>
<REQUESTED_BY>
<xsl:value-of select="REQUESTED_BY"/>
</REQUESTED_BY>
<ISSUED_AT>
<xsl:value-of select="ISSUED_AT"/>
</ISSUED_AT>
<ORDER_TYPE>
<xsl:value-of select="ORDER_TYPE"/>
</ORDER_TYPE>
<PURCHASE_ORDER_NUMBER>
<xsl:value-of select="PURCHASE_ORDER_NUMBER"/>
</PURCHASE_ORDER_NUMBER>
<SALES_ORDER_DOCUMENT_TYPE>
<xsl:value-of select="SALES_ORDER_DOCUMENT_TYPE"/>
</SALES_ORDER_DOCUMENT_TYPE>
<VAT_NO_IF_APPLIED>
<xsl:value-of select="VAT_NO_IF_APPLIED"/>
</VAT_NO_IF_APPLIED>
<PHOTO_LIBRARY_INTERNAL>
<PURCHASE_ID> <xsl:value-of select="PHOTO_LIBRARY_INTERNAL/PURCHASE_ID"/> </PURCHASE_ID>
<USER_ID> <xsl:value-of select="PHOTO_LIBRARY_INTERNAL/USER_ID"/> </USER_ID>
<CLIENT_ID> <xsl:value-of select="PHOTO_LIBRARY_INTERNAL/CLIENT_ID"/> </CLIENT_ID>
</PHOTO_LIBRARY_INTERNAL>
<CUSTOMER_DETAILS>
<COMPANY_NAME> <xsl:value-of select="CUSTOMER_DETAILS/COMPANY_NAME"/> </COMPANY_NAME>
<ACCOUNT_NAME> <xsl:value-of select="CUSTOMER_DETAILS/ACCOUNT_NAME"/> </ACCOUNT_NAME>
<SAP_ID> <xsl:value-of select="CUSTOMER_DETAILS/SAP_ID"/> </SAP_ID>
<VAT_REGISTERED> <xsl:value-of select="CUSTOMER_DETAILS/VAT_REGISTERED"/> </VAT_REGISTERED>
<COMPANY_TELEPHONE> <xsl:value-of select="CUSTOMER_DETAILS/COMPANY_TELEPHONE"/> </COMPANY_TELEPHONE>
<COMPANY_EMAIL></COMPANY_EMAIL>
<USER_TELEPHONE> <xsl:value-of select="CUSTOMER_DETAILS/USER_TELEPHONE"/> </USER_TELEPHONE>
<USER_EMAIL></USER_EMAIL>
<ADDRESS>
<STREET> <xsl:value-of select="CUSTOMER_DETAILS/ADDRESS/STREET"/> </STREET>
<POSTCODE> <xsl:value-of select="CUSTOMER_DETAILS/ADDRESS/POSTCODE"/> </POSTCODE>
<CITY> <xsl:value-of select="CUSTOMER_DETAILS/ADDRESS/CITY"/> </CITY>
<COUNTRY> <xsl:value-of select="CUSTOMER_DETAILS/ADDRESS/COUNTRY"/> </COUNTRY>
</ADDRESS>
</CUSTOMER_DETAILS>
<LINE_ITEMS>
<xsl:for-each select="LINE_ITEMS/LINE_ITEM">
<LINE_ITEM>
<QUANTITY><xsl:value-of select="LINE_ITEM/@QUANTITY"/></QUANTITY>
<INTERNAL_PHOTO_ID><xsl:value-of select="LINE_ITEM/@INTERNAM_PHOTO_ID"/></INTERNAL_PHOTO_ID>
<ELVIS_ID><xsl:value-of select="LINE_ITEM/ELVIS_ID"/></ELVIS_ID>
<TITLE><xsl:value-of select="LINE_ITEM/TITLE"/></TITLE>
<NET_PRICE><xsl:value-of select="LINE_ITEM/NET_PRICE"/></NET_PRICE>
<USAGE_DETAILS><xsl:value-of select="LINE_ITEM/USAGE_DETAILS"/></USAGE_DETAILS>
<USAGE_DATE><xsl:value-of select="LINE_ITEM/USAGE_DATE"/></USAGE_DATE>
<LICENSE><xsl:value-of select="LINE_ITEM/LICENSE"/></LICENSE>
<LICENSE_OPTIONS><xsl:value-of select="LINE_ITEM/LICENSE_OPTIONS"/></LICENSE_OPTIONS>
</LINE_ITEM>
</xsl:for-each>
</LINE_ITEMS>
</SALES_ORDER>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:transform>
my xml file is in here below
<sales_order>
</photo_library_internal>
</address>
</customer_details>
</line_item>
</line_item>
</line_items>
</sales_order>
********************************************
Now my query is I am not getting the valies for LINE_ITEMS
the remaining values all is been getting mapped to ABAP internal table except LINE_ITEMS
anyone please assist me do I need to change variable declarations or need to change the XSLT program ???
Hi,
Remove the "LINE_ITEM/" part from the select queries of xsl:value-of. By using the for-each, you set the "context" of the processing to LINE_ITEMS/LINE_ITEM. So when you use:
<xsl:value-of select="LINE_ITEM/ELVIS_ID"/>
inside the loop, the system looks for the following element:
LINE_ITEMS / LINE_ITEM / LINE_ITEM / ELVIS_ID
which obviously cannot be found. So simply change to the following:
<xsl:value-of select="ELVIS_ID"/>
Regards,
Greg
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.