Tally Export Limit fields in XML export

834 views Asked by At

For extracting data into XML from Tally, I am using below XML Query.

To improve the response time I have restricted the data based on the voucher date and voucher type. However, I feel there is still a room for improvement as the current response contains all the possible fields in the Voucher.

Hence, My question: How can I specify specific fields so that the XML response will be smaller.

<ENVELOPE>
  <HEADER>
    <VERSION>1</VERSION>
    <TALLYREQUEST>EXPORT</TALLYREQUEST>
    <TYPE>DATA</TYPE>
    <ID>Voucher Register</ID>
  </HEADER>
  <BODY>
    <DESC>
      <STATICVARIABLES>
        <SVFROMDATE TYPE="DATE">20210101</SVFROMDATE>
        <SVTODATE TYPE="DATE">20210101</SVTODATE>
        <VOUCHERTYPENAME TYPE="STRING">Sales</VOUCHERTYPENAME>
      </STATICVARIABLES>
    </DESC>
  </BODY>
</ENVELOPE>
2

There are 2 answers

0
sai vineeth On

As per my knowledge in above xml you cannot limit fields

My suggestion is first get List of vouchers with only voucher masterids

then loop though list of vouchers and get each voucher object using this XML where you can limit fields

0
Adarsh Madrecha On

In case someone come looking for more examples

Sales Register

<ENVELOPE><HEADER><VERSION>1</VERSION><TALLYREQUEST>EXPORT</TALLYREQUEST><TYPE>COLLECTION</TYPE><ID>VchRegOneColValueSrc</ID></HEADER><BODY><DESC><STATICVARIABLES><SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT></STATICVARIABLES><TDL><TDLMESSAGE></TDLMESSAGE></TDL></DESC></BODY></ENVELOPE>

List of Companies with Starting From

<ENVELOPE><HEADER><VERSION>1</VERSION><TALLYREQUEST>Export</TALLYREQUEST><TYPE>Collection</TYPE><ID>List of Companies</ID></HEADER><BODY><DESC><STATICVARIABLES /><TDL><TDLMESSAGE><COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="Yes" ISOPTION="No" ISINTERNAL="No" NAME="List of Companies"><TYPE>Company</TYPE><NATIVEMETHOD>Name</NATIVEMETHOD><NATIVEMETHOD>StartingFrom</NATIVEMETHOD><NATIVEMETHOD>GUID</NATIVEMETHOD></COLLECTION></TDLMESSAGE></TDL></DESC></BODY></ENVELOPE>

List of Ledgers

<ENVELOPE><HEADER><VERSION>1</VERSION><TALLYREQUEST>Export</TALLYREQUEST><TYPE>Collection</TYPE><ID>List of Ledgers</ID></HEADER><BODY><DESC><STATICVARIABLES /><TDL><TDLMESSAGE><COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="Yes" ISOPTION="No" ISINTERNAL="No" NAME="List of Ledgers"><TYPE>Ledger</TYPE><NATIVEMETHOD>Name</NATIVEMETHOD><NATIVEMETHOD>Parent</NATIVEMETHOD><NATIVEMETHOD>TAXTYPE</NATIVEMETHOD><NATIVEMETHOD>GSTDUTYHEAD</NATIVEMETHOD></COLLECTION></TDLMESSAGE></TDL></DESC></BODY></ENVELOPE>

Vouchers By Type

<ENVELOPE><HEADER><VERSION>1</VERSION><TALLYREQUEST>Export</TALLYREQUEST><TYPE>Data</TYPE><ID>List Of Vouchers</ID></HEADER><BODY><DESC><STATICVARIABLES><SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT><SVCURRENTCOMPANY>ABC Company</SVCURRENTCOMPANY><SVFROMDATE TYPE="Date">01-Apr-2010</SVFROMDATE><SVTODATE TYPE="Date">04-Jun-2021</SVTODATE></STATICVARIABLES><TDL><TDLMESSAGE><REPORT ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="List Of Vouchers"><FORMS>List Of Vouchers</FORMS></REPORT><FORM ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="List Of Vouchers"><TOPPARTS>List Of Vouchers</TOPPARTS><XMLTAG>ListOfVouchers</XMLTAG></FORM><PART ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="List Of Vouchers"><TOPLINES>List Of Vouchers</TOPLINES><REPEAT>List Of Vouchers : FormList Of Vouchers</REPEAT><SCROLLED>Vertical</SCROLLED></PART><LINE ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="List Of Vouchers"><LEFTFIELDS>MASTERID</LEFTFIELDS><LEFTFIELDS>VoucherNumber</LEFTFIELDS><LEFTFIELDS>Date</LEFTFIELDS></LINE><FIELD ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="MASTERID"><SET>$MASTERID</SET><XMLTAG>MASTERID</XMLTAG></FIELD><FIELD ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="VoucherNumber"><SET>$VoucherNumber</SET><XMLTAG>VoucherNumber</XMLTAG></FIELD><FIELD ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="Date"><SET>$Date</SET><XMLTAG>Date</XMLTAG></FIELD><COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="FormList Of Vouchers"><TYPE>Voucher</TYPE><FILTERS>VoucherType</FILTERS></COLLECTION><SYSTEM TYPE="Formulae" NAME="VoucherType">$VoucherTypeName = "Attendance"</SYSTEM></TDLMESSAGE></TDL></DESC></BODY></ENVELOPE>

Sales Report

<ENVELOPE>  <HEADER>    <VERSION>1</VERSION>    <TALLYREQUEST>EXPORT</TALLYREQUEST>    <TYPE>DATA</TYPE>    <ID>Voucher Register</ID>  </HEADER>  <BODY>    <DESC>      <STATICVARIABLES>        <SVFROMDATE TYPE="DATE">20100101</SVFROMDATE>        <SVTODATE TYPE="DATE">20210101</SVTODATE>        <VOUCHERTYPENAME TYPE="STRING">Sales</VOUCHERTYPENAME>      </STATICVARIABLES>    </DESC>  </BODY></ENVELOPE>

Ledger Dynamic Balance

Gets Ledger Based on ledgername Opening balance and Closing balance is based on static variables

<ENVELOPE>  <HEADER>        <VERSION>1</VERSION>        <TALLYREQUEST>Export</TALLYREQUEST>     <TYPE>Collection</TYPE>     <ID>Ledgers</ID>    </HEADER>   <BODY>      <DESC>          <STATICVARIABLES>               <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <!-- * Supports only xml format -->                <SVFROMDATE TYPE="Date">20200801</SVFROMDATE>             <SVTODATE TYPE="Date">20210831</SVTODATE>           </STATICVARIABLES>          <TDL>               <TDLMESSAGE>                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="Ledgers">                      <TYPE>Ledger</TYPE>                     <NATIVEMETHOD>Address</NATIVEMETHOD>                        <!-- * will fetch all fields if you want specific fields you can specify -->                        <NATIVEMETHOD>*</NATIVEMETHOD>                                              <FILTERS>Ledgerfilter</FILTERS>                 </COLLECTION>                    <!-- You can  change filter to other than name also -->                    <!--to get ledger based on master id replace $Name with $Masterid -->                    <!--Replace AdarshLoan a/c with ledgername you want to search -->                  <SYSTEM TYPE="Formulae" NAME="Ledgerfilter">$Name="AdarshLoan a/c"</SYSTEM>             </TDLMESSAGE>           </TDL>      </DESC> </BODY></ENVELOPE>

Ledger Balance

Gets Ledger Based on ledgername Opening balance is static as per Master screen

<ENVELOPE>  <HEADER>        <VERSION>1</VERSION>        <TALLYREQUEST>Export</TALLYREQUEST>     <TYPE>Collection</TYPE>     <ID>Ledgers</ID>    </HEADER>   <BODY>      <DESC>          <STATICVARIABLES>                <!-- * Static variables like scfrom,svto,svexport format will not work -->                         </STATICVARIABLES>          <TDL>               <TDLMESSAGE>                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="Ledgers">                      <TYPE>masters</TYPE>                        <NATIVEMETHOD>Address</NATIVEMETHOD>                        <!-- * will fetch all fields if you want specific fields you can specify -->                        <NATIVEMETHOD>*</NATIVEMETHOD>                      <FILTERS>Ledgerfilter</FILTERS>                 </COLLECTION>                     <!-- You can  change filter to other than name also -->                    <!--to get ledger based on master id replace $Name with $Masterid -->                    <!--Replace Abhilashloan a/c with ledgername you want to search -->                   <SYSTEM TYPE="Formulae" NAME="Ledgerfilter">$Name="Abhilashloan a/c"</SYSTEM>               </TDLMESSAGE>           </TDL>      </DESC> </BODY></ENVELOPE>

Voucher By Voucher Number

Gets Voucher Based on VoucherNumber and Voucher Date

<ENVELOPE>  <HEADER>        <VERSION>1</VERSION>        <TALLYREQUEST>EXPORT</TALLYREQUEST>     <TYPE>Object</TYPE>     <SUBTYPE>VOUCHER</SUBTYPE>      <ID TYPE="Name">Date:'31-Aug-2020':VoucherNumber:'1'</ID>   </HEADER>   <BODY>      <DESC>          <STATICVARIABLES>           <SVCURRENTCOMPANY>ABC Company</SVCURRENTCOMPANY>                <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>                 <!--Ensures entry is double entry insted of Invoice view  -->                <SVViewName>Accounting Voucher View</SVViewName>            </STATICVARIABLES>          <FETCHLIST>             <FETCH>*</FETCH>                            </FETCHLIST>        </DESC> </BODY></ENVELOPE>

Voucher By Master ID

<ENVELOPE>  <HEADER>        <VERSION>1</VERSION>        <TALLYREQUEST>EXPORT</TALLYREQUEST>     <TYPE>Object</TYPE>     <SUBTYPE>VOUCHER</SUBTYPE>      <ID TYPE="Name">ID:'123'</ID>   </HEADER>   <BODY>      <DESC>          <STATICVARIABLES>           <SVCURRENTCOMPANY>ABC Company</SVCURRENTCOMPANY>                <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>                <!--Ensures entry is double entry insted of Invoice view  -->                 <SVViewName>Accounting Voucher View</SVViewName>            </STATICVARIABLES>          <FETCHLIST>             <FETCH>*</FETCH>                            </FETCHLIST>        </DESC> </BODY></ENVELOPE>

More XMLS will be updated at - https://documenter.getpostman.com/view/13855108/TzeRpAMt