如何通过XML请求从Tally Prime获取库存物料的补货详情
解决Tally Prime XML请求获取库存补货信息的报错问题
问题描述
需要通过XML请求从Tally Prime获取库存物料的以下信息:
- 补货水平(Reorder Level)
- 当前库存数量
- 最小订货量(Minimum Order Quantity)
尝试使用Tally Developer文档中的ROSOrdLvl和ROSMinQty变量时,收到错误响应:
<RESPONSE> <LINEERROR>Could not find Report 'ROSOrdLvl'!</LINEERROR> </RESPONSE>
使用最小订货量变量时也出现相同的"找不到报告"错误。
解决方案
1. 确认正确的字段名称与XML结构
Tally Prime中,补货水平和最小订货量属于库存物料主数据的属性,而非独立报告。正确的XML请求应直接查询StockItem对象的对应字段:
- 补货水平对应字段:
ReorderLevel - 最小订货量对应字段:
MinimumOrderQty - 库存数量可通过
CurrentStock属性获取,或结合GodownEntry下的Quantity实现分仓库查询
2. 示例XML请求
以下是可直接使用的查询模板,替换<COMPANY_NAME>为你的公司名称:
<ENVELOPE> <HEADER> <TALLYREQUEST>EXPORT</TALLYREQUEST> </HEADER> <BODY> <EXPORTDATA> <REQUESTDESC> <REPORTNAME>Stock Item</REPORTNAME> <STATICVARIABLES> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <SVCURRENTCOMPANY><COMPANY_NAME></SVCURRENTCOMPANY> </STATICVARIABLES> <TDL> <TDLMESSAGE> <REPORT NAME="Stock Item" ISMODIFY="Yes" ISFIXED="Yes"> <FORMS>Stock Item List</FORMS> </REPORT> <FORM NAME="Stock Item List" ISMODIFY="Yes" ISFIXED="Yes"> <PARTS>Stock Item Part</PARTS> </FORM> <PART NAME="Stock Item Part" ISMODIFY="Yes" ISFIXED="Yes"> <LINES>Stock Item Line</LINES> </PART> <LINE NAME="Stock Item Line" ISMODIFY="Yes" ISFIXED="Yes"> <FIELDS>StockItemName, ReorderLevel, MinimumOrderQty, CurrentStock</FIELDS> </LINE> <FIELD NAME="CurrentStock" ISMODIFY="No" ISFIXED="No"> <METHOD>CurrentStock</METHOD> </FIELD> </TDLMESSAGE> </TDL> </REQUESTDESC> </EXPORTDATA> </BODY> </ENVELOPE>
3. 关键说明
- 不要直接使用
ROSOrdLvl这类名称,它们是Tally内部临时报告或特定场景变量,不适合通用XML查询 - 确保XML请求中引用的字段与Tally Prime库存物料主数据的属性完全匹配
- 如果需要按仓库过滤库存数量,可在TDL中添加
Godown相关的过滤逻辑
内容的提问来源于stack exchange,提问作者Prakash
相关产品推荐
相关产品推荐

