使用xml标签从标签中自动提取项目名称/部件号,导出库存项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用xml标签从标签中自动提取项目名称/部件号,导出库存项目相关的知识,希望对你有一定的参考价值。
我正在尝试从TallyErp 9中获取库存项目。我能够使用xml标签获取特定项目详细信息但现在我要求项目应该与Tally相同,即在输入搜索参数时它应该提供与我的搜索相关的所有库存项目关键词。我目前获取单个库存项目详细信息的代码如下:
`
<?xml version=1.0 encoding=UTF-8>
<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>EXPORT</TALLYREQUEST>
<TYPE>OBJECT</TYPE>
<SUBTYPE>stock item</SUBTYPE>
<ID TYPE="Name">`+ searchValue + `</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
</STATICVARIABLES>
<FETCHLIST>
<FETCH>OpeningValue</FETCH>
<FETCH>OpeningRate</FETCH>
<FETCH>OpeningBalance</FETCH>
<FETCH>ClosingBalance</FETCH>
<FETCH>ClosingRate</FETCH>
<FETCH>STANDARDPRICELIST.RATE</FETCH>
</FETCHLIST>
<TDL>
<TDLMESSAGE>
<OBJECT NAME="stock item" ISINITIALIZE="Yes">
</OBJECT>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE></xml>
`
这里我从输入框传递searchValue并成功获取所有请求。期待一些可以真正帮助我的答案。
提前致谢。
此XML请求从Tally ERP 9检索所有stockitem名称,其中StockItem名称以“My Item”开头,或StockItem Alias以“My Item”开头。
示例:我的项目1(名称以“我的项目”开头) 我的Item2(名称以My Item开头) ABC(别名以我的项目开头)
如您所见,即使第三个StockItem名称为“ABC”,查询也会返回它,因为Alias以“我的项目”开头
这是XML请求:
<ENVELOPE>
<HEADER>
<TALLYREQUEST>Export Data</TALLYREQUEST>
</HEADER>
<BODY>
<EXPORTDATA>
<REQUESTDESC>
<REPORTNAME>ODBC Report</REPORTNAME>
<SQLREQUEST Type='General' Method='SQLExecute'>Select $Name from StockItem where $Name like 'My Item%' or $$Alias like 'My Item%'</SQLREQUEST>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
</STATICVARIABLES>
</REQUESTDESC>
<REQUESTDATA/>
</EXPORTDATA>
</BODY>
</ENVELOPE>
这是从Tally ERP 9获取特定StockItem的示例XML请求。
<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>EXPORT</TALLYREQUEST>
<TYPE>COLLECTION</TYPE>
<ID>RTS_StockItem</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
<!-- TODO : Values passed to Filter -->
<!-- Specify the StockItem -->
<RTS_KEY>Item 4 [GST test]</RTS_KEY>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<!-- Retrieve specified StockItem -->
<COLLECTION NAME="RTS_StockItem" ISINITIALIZE="Yes">
<TYPE>StockItem</TYPE>
<FETCH>*</FETCH>
<FILTER>RTS_FilterSingleStockItem</FILTER>
</COLLECTION>
<VARIABLE NAME="RTS_KEY">
<TYPE>String</TYPE>
</VARIABLE>
<SYSTEM TYPE="FORMULAE" NAME="RTS_FilterSingleStockItem">
$Name = $$String:##RTS_KEY
</SYSTEM>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE>
在上述XML请求中,我们从Tally ERP 9中获取Collection。过滤器应用于Collection以导出指定的StockItem记录。标签<FETCH> * </ FETCH>指定从Tally Software检索所有方法/字段。
其他参考文献:https://www.rtslink.com
以上是关于使用xml标签从标签中自动提取项目名称/部件号,导出库存项目的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 从 XML“链接”标签中提取“href”属性?