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

如何通过Tally Connector获取指定分类账的日期范围凭证数据

解决Tally Connector获取指定分类账凭证无数据的问题

可能的问题与修复步骤

1. 确认请求参数的准确性

  • 公司名称完全匹配:Tally对公司名称的大小写、空格、标点符号敏感,确保Company属性值和Tally Prime中显示的公司名称完全一致。
  • 日期范围有效性:检查FromDate与ToDate的顺序是否正确,同时确认Tally中该分类账的凭证确实落在设定的日期区间内。

2. 修正异步调用写法

直接使用.Result可能引发线程死锁,建议改用await处理异步方法,避免线程阻塞影响数据返回:

// 在异步方法内执行
var voucherRequestOptions = new VoucherRequestOptions()
{     
    FromDate = new DateTime(2023,1,1),     
    ToDate = new DateTime(2024, 1, 1),     
    Company = "Company Name" 
};

var voucher = await tallyService.GetVoucherAsync(ledgerName, voucherRequestOptions);

var vouchers = await tallyService.GetVouchersAsync(voucherRequestOptions); 
foreach (var v in vouchers) 
{     
    Console.WriteLine($"Voucher Number: {v.VoucherNumber}, Date: {v.Date}"); 
}

3. 添加分类账筛选条件

如果GetVouchersAsync未自动过滤指定分类账的凭证,需在VoucherRequestOptions中添加筛选规则:

var voucherRequestOptions = new VoucherRequestOptions()
{     
    FromDate = new DateTime(2023,1,1),     
    ToDate = new DateTime(2024, 1, 1),     
    Company = "Company Name",
    Filter = $"LedgerName='{ledgerName}'"
};

var vouchers = await tallyService.GetVouchersAsync(voucherRequestOptions);

4. 检查Tally Prime访问权限

确保Tally Prime已开启外部API访问权限,你的.NET应用IP在Tally允许列表中;同时确认Tally处于运行状态,当前登录用户有权限查看该分类账的凭证数据。

5. 获取期初/期末余额

要匹配Tally Prime的显示效果,需调用专门的余额查询方法:

var balanceOptions = new LedgerBalanceRequestOptions()
{
    FromDate = new DateTime(2023,1,1),
    ToDate = new DateTime(2024,1,1),
    Company = "Company Name"
};

var ledgerBalance = await tallyService.GetLedgerBalanceAsync(ledgerName, balanceOptions);
Console.WriteLine($"期初余额: {ledgerBalance.OpeningBalance}, 期末余额: {ledgerBalance.ClosingBalance}");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:52:40