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

Tally XML API技术问询:合并凭证/库存项/客户数据并按AlterID筛选

Tally XML API:单次获取凭证、库存项、客户三类合并数据并按凭证AlterID筛选

需求说明

需要通过Tally XML API单次导出Voucher(凭证)、StockItem(库存项)、**Customer(客户,对应LEDGER类型)**三类数据,合并到单个响应结果中;同时仅筛选出符合指定AlterID条件的凭证,以及对应关联的库存项、客户数据。

修改后的请求XML

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

            <TDL>
                <TDLMESSAGE>
                    <!-- 主集合:包含三类数据的子集合 -->
                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CUSTOMCOLLECTION">
                        <CHILD>CUSTOMVOUCHERDATA</CHILD>
                        <CHILD>CUSTOMSTOCKITEMCOL</CHILD>
                        <CHILD>CUSTOMLEDGERDATA</CHILD>
                    </COLLECTION>

                    <!-- 凭证数据集合 -->
                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CUSTOMVOUCHERDATA">
                        <TYPE>VOUCHER</TYPE>
                        <FETCH>VOUCHERNUMBER,DATE,ISCANCELLED,PARTYNAME,PARTYLEDGERNAME,PARTYGSTIN,CONSIGNEEGSTIN,ALLLEDGERENTRIES.LIST.LEDGERNAME,AMOUNT,VCHSTATUSDATE,EFFECTIVEDATE,ALTERID,MASTERID,VOUCHERKEY,VOUCHERRETAINKEY,GUID,BASICSHIPDOCUMENTNO,BASICFINALDESTINATION,BASICSHIPVESSELNO,EICHECKPOST,BILLOFLADINGNO,BILLOFLADINGDATE,BASICSHIPPEDBY,IRN,IRNACKDATE,GSTREGISTRATION,VOUCHERTYPENAME,CMPGSTREGISTRATIONTYPE,CMPGSTSTATE,NUMBERINGSTYLE,VCHSTATUSTAXUNIT,GSTNATUREOFRETURN</FETCH>
                        <FILTER>VoucherFilter</FILTER>
                    </COLLECTION>
                    <SYSTEM TYPE="Formulae" NAME="VoucherFilter">$MASTERID > 829 AND $ALTERID > 1343</SYSTEM>

                    <!-- 库存项数据集合 -->
                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CUSTOMSTOCKITEMCOL">
                        <TYPE>STOCKITEM</TYPE>
                        <FETCH>NAME,GUID,GSTAPPLICABLE,GSTDETAILS.LIST,ALTERID,MRPDETAILS.LIST,BASEUNITS,ISDELETED,OPENINGBALANCE,OPENINGRATE</FETCH>
                        <FILTER>StockItemFilter</FILTER>
                    </COLLECTION>
                    <SYSTEM TYPE="Formulae" NAME="StockItemFilter">$ALTERID > 1094</SYSTEM>

                    <!-- 客户数据集合(LEDGER类型,筛选客户组) -->
                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CUSTOMLEDGERDATA">
                        <TYPE>LEDGER</TYPE>
                        <FETCH>NAME,PARENT,GUID,PARTYGSTIN,BILLCREDITPERIOD,LEDGERMOBILE,LEDGERCOUNTRYISCODE,ISDELETED,ALTERID,EMAIL,PRIORSTATENAME</FETCH>
                        <FILTER>CustomerFilter</FILTER>
                    </COLLECTION>
                    <SYSTEM TYPE="Formulae" NAME="CustomerFilter">$PARENT = "Sundry Debtors" AND $ALTERID > 32</SYSTEM>
                </TDLMESSAGE>
            </TDL>
        </DESC>
    </BODY>
</ENVELOPE>

关键修改说明

  1. 合并TDL块:将原有的三个独立块合并为一个,避免同名筛选器的定义冲突。
  2. 主集合嵌套子集合:创建主集合CUSTOMCOLLECTION,通过<CHILD>标签包含三类数据的子集合,确保单次请求返回所有三类数据。
  3. 独立筛选器定义:为每类数据设置专属筛选器,避免逻辑冲突:
    • 凭证筛选保留原有的$MASTERID > 829 AND $ALTERID > 1343条件
    • 客户筛选新增$PARENT = "Sundry Debtors"(需根据实际账套的客户组名称调整),确保仅导出客户类 ledger 数据
    • 库存项筛选保留原有的$ALTERID > 1094条件
  4. 统一集合属性:确保所有集合的ISINTERNAL="No",保证数据能被正确导出到响应中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 22:14:52