You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Tally XML无法获取凭证交易明细,如何解决?

解决Tally XML请求无法获取凭证明细(金额/数量/折扣)的问题

你的问题出在XML请求仅获取了凭证头部的基础信息,而金额、数量、折扣等交易明细存储在凭证的分录(Voucher Entries)层级,需要在TDL中明确指定要提取这部分数据。

调整后的XML请求体

<ENVELOPE Action="">
    <HEADER>
        <VERSION>1</VERSION>
        <TALLYREQUEST>EXPORT</TALLYREQUEST>
        <TYPE>COLLECTION</TYPE>
        <ID>CustomVoucherCollection</ID>
    </HEADER>
    <BODY>
        <DESC>
            <STATICVARIABLES>
                <SVCURRENTCOMPANY>{{currentCompany}}</SVCURRENTCOMPANY>
                <SVFROMDATE TYPE="Date">1-1-2024</SVFROMDATE>
                <SVTODATE TYPE="Date">1-4-2024</SVTODATE>
            </STATICVARIABLES>
            <TDL>
                <TDLMESSAGE>
                    <!-- 定义凭证集合,指定要获取的头部字段和分录集合 -->
                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CustomVoucherCollection">
                        <TYPE>Vouchers</TYPE>
                        <!-- 过滤仅获取付款凭证(可选,按需保留) -->
                        <FILTER>VoucherType.Name = "Payment"</FILTER>
                        <!-- 指定凭证头部需要的字段 -->
                        <FETCH>VoucherNumber, VoucherType, Date, PartyName, GSTIN, VoucherEntries</FETCH>
                    </COLLECTION>

                    <!-- 定义凭证明细分录的子集合,指定交易字段 -->
                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="VoucherEntries">
                        <TYPE>Voucher Entry</TYPE>
                        <!-- 指定分录层级的交易明细字段 -->
                        <FETCH>LedgerName, Amount, Quantity, DiscountPercentage, DiscountAmount, Narration</FETCH>
                    </COLLECTION>
                </TDLMESSAGE>
            </TDL>
        </DESC>
    </BODY>
</ENVELOPE>

关键调整说明

  1. 明确指定字段而非模糊匹配:
    替换原有的<NATIVEMETHOD>*,*.*</NATIVEMETHOD>为具体的<FETCH>字段,避免Tally仅返回默认的基础字段。

  2. 添加分录子集合:
    新增VoucherEntries集合,专门提取凭证分录层级的数据——金额、数量、折扣等核心交易信息都存储在这里。

  3. 可选:过滤付款凭证:
    通过<FILTER>VoucherType.Name = "Payment"</FILTER>限定仅返回付款凭证,减少不必要的数据返回,提升请求效率。

  4. 按需扩展字段:
    若需要更多字段(如税率、税金额),可在<FETCH>中添加对应的字段名(如TaxRate, TaxAmount),Tally会返回对应的数据。

内容的提问来源于stack exchange,提问作者canaryGrapher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 22:13:09