Skip to Content
0
Former Member
Jun 08, 2009 at 12:29 PM

ERROR in XSLT transaction

42 Views

HI,exports ,When I use the xslt transaction to export internal table to XML file,some unexpected result

apprears.

In the abap program i define the internal table as this:

DATA: BEGIN OF WA_FINAL_XML,

COMP_CODE TYPE STRING,

AC_DOC_TYP TYPE STRING,

GJAHR TYPE STRING ,

MONAT TYPE STRING,

AC_DOC_NO TYPE STRING,

PSTNG_DATE TYPE STRING,

UNAME TYPE STRING,

XMLSTRUCT TYPE TABLE OF TY_XML,

END OF WA_FINAL_XML.

TYPES: BEGIN OF TY_XML,

ITEM_NUM TYPE STRING,

GL_ACCOUNT TYPE STRING,

POSTXT TYPE STRING,

COSTCENTER TYPE STRING,

FUNC_AREA TYPE STRING,

PROFIT_CTR TYPE STRING,

COORDER TYPE STRING,

WBS_ELEMT TYPE STRING,

DEBIT_LC TYPE STRING,

CREDIT_LC TYPE STRING,

LOC_CURRCY TYPE STRING,

DEBIT_DC TYPE STRING,

CREDIT_DC TYPE STRING,

DOC_CURRCY TYPE STRING,

END OF TY_XML.

the main transaction code are as follows:

DATA: WA_XML LIKE TY_XML,

WA_SOURCE TYPE ABAP_TRANS_SRCBIND.

WA_SOURCE-NAME = 'D2CXML'.

GET REFERENCE OF T_FINAL_XML INTO WA_SOURCE-VALUE.

APPEND WA_SOURCE TO T_SOURCE.

CLEAR G_XML_STRING.

CALL TRANSFORMATION ('ZFIGL4')

SOURCE (T_SOURCE)

RESULT XML G_XML_STRING.

IF SY-SUBRC <> 0.

*

ELSE.

G_XML_STRING1 = G_XML_STRING.

REPLACE 'utf-16' WITH 'utf-8' INTO G_XML_STRING.

ENDIF.

IN the xslt transaction :

http://www.w3.org/1999/XSL/Transform" version="1.0">

<! xsl:output encoding="utf-8" indent="yes"/ >

<xsl:template match="D2CXML">

<voucher_id>

<xsl:apply-templates/>

</voucher_id>

</xsl:template>

<xsl:template match="item">

<voucher_head>

<xsl:attribute name="no">

<xsl:value-of select="AC_DOC_NO"/>

</xsl:attribute>

<company>

<xsl:apply-templates select="COMP_CODE"/>

</company>

<voucher_type>

<xsl:apply-templates select="AC_DOC_TYP"/>

</voucher_type>

<fiscal_year>

<xsl:apply-templates select="GJAHR"/>

</fiscal_year>

<accounting_period>

<xsl:apply-templates select="MONAT"/>

</accounting_period>

<voucher_id>

<xsl:apply-templates select="AC_DOC_NO"/>

</voucher_id>

<prepareddate>

<xsl:apply-templates select="PSTNG_DATE"/>

</prepareddate>

<xsl:apply-templates select="X-MLSTRUCT"/>

</voucher_head>

</xsl:template>

<xsl:template match="X-MLSTRUCT">

<xsl:apply-templates/>

</xsl:template>

<xsl:template match="item/X-MLSTRUCT">

<entry>

<entry_id>

<xsl:apply-templates select="ITEM_NUM"/>

</entry_id>

<account_code>

<xsl:apply-templates select="GL_ACCOUNT"/>

</account_code>

<abstract>

<xsl:apply-templates select="POSTXT"/>

</abstract>

<primary_debit_amount>

<xsl:apply-templates select="DEBIT_DC"/>

</primary_debit_amount>

<natural_debit_currency>

<xsl:apply-templates select="DEBIT_DC"/>

</natural_debit_currency>

<primary_credit_amount>

<xsl:apply-templates select="CREDIT_LC"/>

</primary_credit_amount>

</entry>

</xsl:template>

</xsl:transform>

But the final data shows in the exported XML file shows :

<?xml version="1.0" encoding="utf-8" ?>

<voucher_id />

I don't know where the error lies . Thanks for your help in advance.

Edited by: leen_202 on Jun 8, 2009 2:29 PM

Edited by: leen_202 on Jun 8, 2009 2:34 PM