为了从Tally中将数据提取到XML中,我使用以下XML查询。
为了提高响应时间,我根据凭证日期和凭证类型限制了数据。然而,我觉得还有改进的空间,因为当前的回复包含了凭单中所有可能的字段。
因此,我的问题是:如何指定特定的字段,使XML响应更小。
<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>
如果有人来找更多的例子
销售登记簿
<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>
起点为的公司列表
<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>
Ledger列表
<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>
凭证(按类型(
<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>
销售报告
<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>
分类帐动态余额
基于分类帐名称获取分类帐期初余额和期末余额基于静态变量
<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>
分类帐余额
根据分类帐名称获取分类帐根据主屏幕,期初余额是静态的
<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>
凭证(按凭证号(
基于VoucherNumber和凭证日期获取凭证
<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>
凭证(按主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>
更多XMLS将更新在-https://documenter.getpostman.com/view/13855108/TzeRpAMt
根据我在上述xml中的知识,您不能限制字段
我的建议是首先获得只有代金券主ID 的代金券列表
然后循环遍历凭证列表,并使用此XML获取每个凭证对象在那里你可以限制字段