使用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>

参考文献:https://www.rtslink.com

另一答案

这是从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”属性?

解析带有重复标签的 XML 文件

如何从 XML 文件中提取所有标签及其子项?

如何在 PL/SQL 中使用 FOR LOOP 从具有相同标签的 xml clob 中提取值

Maven的项目pom.xml文件配置标签列表

如何使用 re 库提取 xml 值中给定标签列表的值? [复制]