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

如何通过XML请求从Tally获取名称含指定文本的账簿列表?

Tally XML请求实现账簿名称模糊匹配的正确方法

问题场景

原本的XML请求可返回Tally中所有账簿列表,添加精准匹配过滤器后能正确获取名称为'Site'的账簿,但需要获取**名称任意位置包含'Site'**的所有账簿,直接替换=为LIKE无法实现需求。

正确实现方式

在Tally的TDL公式中,LIKE运算符需要配合通配符%使用,%代表任意长度的字符序列(包括空字符)。要匹配任意位置包含'Site'的账簿,需将匹配规则改为$Name LIKE '%Site%'。

修改后的过滤器代码

<TDLMESSAGE>
     <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="Ledgers">
            <TYPE>Ledger</TYPE>                             
            <BELONGSTO>Yes</BELONGSTO>
            <NATIVEMETHOD>Name</NATIVEMETHOD>
            <FILTERS>Site</FILTERS>
      </COLLECTION>
    <SYSTEM TYPE="Formulae" NAME="Site">$Name LIKE '%Site%'</SYSTEM>
</TDLMESSAGE>

完整的XML请求示例

<ENVELOPE>
    <HEADER>
        <VERSION>1</VERSION>
        <TALLYREQUEST>Export</TALLYREQUEST>
        <TYPE>Collection</TYPE>
        <ID>Ledgers</ID>
    </HEADER>
    <BODY>
        <DESC>
            <STATICVARIABLES>
                <SVEXPORTFORMAT>SysName:XML</SVEXPORTFORMAT>
            </STATICVARIABLES>
            <TDL>
                <TDLMESSAGE>
                    <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="Ledgers">
                        <TYPE>Ledger</TYPE>                             
                        <BELONGSTO>Yes</BELONGSTO>
                        <NATIVEMETHOD>Name</NATIVEMETHOD>
                        <FILTERS>Site</FILTERS>
                    </COLLECTION>
                    <SYSTEM TYPE="Formulae" NAME="Site">$Name LIKE '%Site%'</SYSTEM>
                </TDLMESSAGE>
            </TDL>
        </DESC>
    </BODY>             
</ENVELOPE>

通配符说明

  • %Site:匹配以'Site'结尾的账簿名称
  • Site%:匹配以'Site'开头的账簿名称
  • %Site%:匹配任意位置包含'Site'的账簿名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:32:42