1

为了从 Tally 中将数据提取到 XML 中,我使用下面的 XML Query。

为了提高响应时间,我根据凭证日期和凭证类型限制了数据。但是,我觉得还有改进的余地,因为当前的响应包含了 Voucher 中所有可能的字段。

因此,我的问题是:如何指定特定字段以使 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>
4

2 回答 2

1

根据我在上述 xml 中的知识,您不能限制字段

我的建议是首先获取只有凭证 masterids 的凭证列表

然后遍历凭证列表并使用此 XML获取每个凭证对象 ,您可以在其中限制字段

于 2021-06-11T07:08:28.053 回答
0

万一有人来寻找更多的例子

销售登记

<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>

分类帐清单

<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 和 Voucher Date 获取 Voucher

<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更新

于 2021-06-11T13:11:00.553 回答