Search code examples
xmltally

Amount Sign Is Not Exporting in XML Response (Only Absolute Digits Are Exporting)


<ENVELOPE>
    <HEADER>
        <VERSION>1</VERSION>
        <TALLYREQUEST>EXPORT</TALLYREQUEST>
        <TYPE>DATA</TYPE>
        <ID>CA_VOUCHER</ID>
    </HEADER>
    <BODY>
        <DESC>
            <STATICVARIABLES>
                <SVEXPORTFORMAT>$$SysName:xml</SVEXPORTFORMAT>
                <SVCURRENTCOMPANY>COMPANY NAME</SVCURRENTCOMPANY>
                <SVFROMDATE TYPE="Date">01-01-2023</SVFROMDATE>
                <SVTODATE TYPE="Date">31-12-2023</SVTODATE>
            </STATICVARIABLES>
            <TDL>
                <TDLMESSAGE>
                    <REPORT ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <FORM>CA_VOUCHER</FORM>
                    </REPORT>
                    <FORM ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <PART>CA_VOUCHER</PART>
                        <XMLTAG>Vouchers.LIST</XMLTAG>
                    </FORM>
                    <PART ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <LINE>CA_VOUCHER</LINE>
                        <REPEAT>CA_VOUCHER:CA_VOUCHERCOLLECTION</REPEAT>
                        <SCROLLED>Vertical</SCROLLED>
                    </PART>
                    <LINE ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <FIELDS>CA_DATE,CA_VOUCHERTYPENAME,CA_VOUCHERNUMBER,CA_AMOUNT</FIELDS>
                        <XMLTAG>VOUCHER</XMLTAG>
                    </LINE>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_DATE">
                        <SET>$Date</SET>
                        <XMLTAG>DATE</XMLTAG>
                    </FIELD>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHERTYPENAME">
                        <SET>$VOUCHERTYPENAME</SET>
                        <XMLTAG>VOUCHERTYPENAME</XMLTAG>
                    </FIELD>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHERNUMBER">
                        <SET>$VoucherNumber</SET>
                        <XMLTAG>VOUCHERNUMBER</XMLTAG>
                    </FIELD>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_AMOUNT">
                        <SET>$AMOUNT</SET>
                        <XMLTAG>AMOUNT</XMLTAG>
                    </FIELD>
                    <COLLECTION ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHERCOLLECTION">
                        <TYPE> Vouchers : Ledger</TYPE>
                        <Childof>LEDGER NAME</Childof>
                        <BELONGSTO>Yes</BELONGSTO>
                        <NATIVEMETHOD>DATE</NATIVEMETHOD>
                        <NATIVEMETHOD>VOUCHERTYPENAME</NATIVEMETHOD>
                        <NATIVEMETHOD>VOUCHERNUMBER</NATIVEMETHOD>
                        <NATIVEMETHOD>AMOUNT</NATIVEMETHOD>
                    </COLLECTION>
                </TDLMESSAGE>
            </TDL>
        </DESC>
    </BODY>
</ENVELOPE>

In the response of the above XML request, I am getting the value of Amount without a sign. (there is no negative digit for sales vouchers etc.) every amount is a positive (absolute) decimal number. I want to export the signed value for the amount. Please help me with what I am missing here in the mentioned request.


Solution

  • Use Type Amount for CA_AMOUNT Field

    if you didn't mention type correctly it is assumed as string

    Tally has some predefined types as shown belowenter image description here

    After Change your field should like this

                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_AMOUNT">
                            <TYPE>Amount</TYPE>
                            <SET>$AMOUNT</SET>
                            <XMLTAG>AMOUNT</XMLTAG>
                        </FIELD>