如何通过TALLY HTTP API导出凭证依赖主数据的Schema?
获取TALLY凭证关联依赖主数据的HTTP API方案
你之前的请求仅指定了凭证自身字段,要获取关联的依赖主数据,需在TDL中显式关联并抓取主数据字段,或通过EXPLODE属性展开完整关联对象。以下是两种可行方案:
方案1:直接抓取关联主数据指定字段
通过关联对象.字段名的格式,在凭证的FETCH列表中指定要获取的依赖主数据字段,比如分类账、库存项目的核心属性。
示例请求XML:
<ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>EXPORT</TALLYREQUEST> <TYPE>COLLECTION</TYPE> <ID>CUSTOMVOUCHERWITHMASTERS</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <SVFROMDATE Type="Date">01-11-2024</SVFROMDATE> <SVTODATE Type="Date">15-11-2024</SVTODATE> </STATICVARIABLES> <TDL> <TDLMESSAGE> <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CUSTOMVOUCHERWITHMASTERS"> <TYPE>VOUCHER</TYPE> <FETCH> <!-- 凭证自身字段 --> VOUCHERNUMBER, DATE, PARTYNAME, AMOUNT, VCHSTATUSDATE, EFFECTIVEDATE, VOUCHERTYPENAME, <!-- 关联分类账主数据字段 --> ALLLEDGERENTRIES.LedgerName, ALLLEDGERENTRIES.Ledger.MAILINGNAME, ALLLEDGERENTRIES.Ledger.PARENTGROUP, ALLLEDGERENTRIES.Ledger.GSTIN, <!-- 关联库存项目主数据字段(库存类凭证适用) --> ALLINVENTORYENTRIES.STOCKITEMNAME, ALLINVENTORYENTRIES.STOCKITEM.PRIMARYUNIT, ALLINVENTORYENTRIES.STOCKITEM.STOCKGROUP </FETCH> <!-- 日期过滤条件 --> <FILTER>DateFilter</FILTER> </COLLECTION> <SYSTEM TYPE="FORMULA" NAME="DateFilter"> <FORMULA>$Date >= $$SVFromDate and $Date <= $$SVToDate</FORMULA> </SYSTEM> </TDLMESSAGE> </TDL> </DESC> </BODY> </ENVELOPE>
说明:
ALLLedgerEntries.Ledger.XXX:抓取凭证分录对应的分类账主数据字段(如名称、父组、税号)ALLInventoryEntries.StockItem.XXX:抓取库存凭证分录对应的库存项目主数据字段(如单位、库存组)
方案2:用EXPLODE展开完整主数据Schema
如果需要获取依赖主数据的完整Schema结构,可通过EXPLODE标签直接展开整个关联对象,返回该主数据的所有字段。
示例请求XML:
<ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>EXPORT</TALLYREQUEST> <TYPE>COLLECTION</TYPE> <ID>VOUCHERWITHMASTERSCHEMA</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <SVFROMDATE Type="Date">01-11-2024</SVFROMDATE> <SVTODATE Type="Date">15-11-2024</SVTODATE> </STATICVARIABLES> <TDL> <TDLMESSAGE> <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="VOUCHERWITHMASTERSCHEMA"> <TYPE>VOUCHER</TYPE> <FETCH> VOUCHERNUMBER, DATE, VOUCHERTYPENAME, <!-- 指定要关联的主数据对象 --> ALLLEDGERENTRIES.Ledger, ALLINVENTORYENTRIES.STOCKITEM </FETCH> <!-- 展开关联对象,返回完整Schema --> <EXPLODE> ALLLEDGERENTRIES.Ledger, ALLINVENTORYENTRIES.STOCKITEM </EXPLODE> <FILTER>DateFilter</FILTER> </COLLECTION> <SYSTEM TYPE="FORMULA" NAME="DateFilter"> <FORMULA>$Date >= $$SVFromDate and $Date <= $$SVToDate</FORMULA> </SYSTEM> </TDLMESSAGE> </TDL> </DESC> </BODY> </ENVELOPE>
说明:
<EXPLODE>标签会将指定的关联主数据对象完整展开,返回其所有属性(如分类账的地址、联系方式,库存项目的税率、备用单位等),适合需要完整Schema的场景
关键注意事项
- 确认TALLY API已开启主数据导出权限,部分版本需在系统设置中激活相关权限
- 不同类型凭证(采购、销售、库存)关联的主数据类型不同,按需调整
FETCH和EXPLODE中的字段 - 若只需单独获取主数据Schema,可直接导出你已能访问的Stock Items、Ledgers数据,再结合凭证关联关系映射
内容的提问来源于stack exchange,提问作者bjss kiriti
相关产品推荐
相关产品推荐

