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

如何在Tally XML导出响应中限制嵌套字段

Tally XML导出:仅获取子列表指定字段的解决办法

当前你的XML请求能正常过滤凭证的直接字段,但在获取ALLLEDGERENTRIES.LIST和INVENTORYALLOCATIONS.LIST下的字段时,会返回列表内的所有字段,而非仅LedgerName和StockItemName。要解决这个问题,不能直接在主集合的NATIVEMETHOD里嵌套调用子字段,而是需要在TDL中定义专属的子集合来明确指定返回字段。

修改后的完整XML请求

<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>Export</TALLYREQUEST>
<TYPE>Collection</TYPE>
<ID>Vouchers</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
<SVCURRENTCOMPANY>CompanyName</SVCURRENTCOMPANY>
<SVFROMDATE TYPE="Date">01-01-2023</SVFROMDATE>
<SVTODATE TYPE="Date">01-01-2023</SVTODATE>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<!-- 定义库存分配子集合,仅返回StockItemName -->
<COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="InvAllocColl">
    <TYPE>InventoryAllocations : Voucher</TYPE>
    <NATIVEMETHOD>STOCKITEMNAME</NATIVEMETHOD>
</COLLECTION>

<!-- 定义分录子集合,仅返回LedgerName和关联的库存分配子集合 -->
<COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="LedgerEntriesColl">
    <TYPE>LedgerEntries : Voucher</TYPE>
    <NATIVEMETHOD>LEDGERNAME</NATIVEMETHOD>
    <CHILDCOLLECTION>InvAllocColl</CHILDCOLLECTION>
</COLLECTION>

<!-- 主凭证集合,关联分录子集合 -->
<COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="Vouchers">
<TYPE> Vouchers : VoucherType</TYPE>
<CHILDOF>$$VchTypeSales</CHILDOF>
<BELONGSTO>Yes</BELONGSTO>
<NATIVEMETHOD>DATE</NATIVEMETHOD>
<NATIVEMETHOD>VOUCHERTYPENAME</NATIVEMETHOD>
<NATIVEMETHOD>ENTEREDBY</NATIVEMETHOD>
<NATIVEMETHOD>PARTYLEDGERNAME</NATIVEMETHOD>
<NATIVEMETHOD>VOUCHERNUMBER</NATIVEMETHOD>
<CHILDCOLLECTION>LedgerEntriesColl</CHILDCOLLECTION>
</COLLECTION>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE>

核心修改说明

  • 新增InvAllocColl子集合:专门对应InventoryAllocations类型,只配置STOCKITEMNAME作为返回字段,确保库存分配列表仅返回所需内容。
  • 新增LedgerEntriesColl子集合:对应LedgerEntries类型,指定返回LEDGERNAME,同时通过CHILDCOLLECTION关联上面的库存分配子集合,保持数据层级关系。
  • 主集合调整:用CHILDCOLLECTION关联LedgerEntriesColl,替代原来直接嵌套的NATIVEMETHOD调用,让Tally按照定义的子集合结构返回数据。

这样调整后,响应XML只会包含你指定的字段,不会返回子列表中的其他冗余数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:02:18