我正在尝试使用来自 Tally 服务器的发票编号读取收据数据,并且我已成功读取数据。以下是我发送给 Tally 并获得更正响应的请求。
<?xml version="1.0" encoding="UTF-8"?>
<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>EXPORT</TALLYREQUEST>
<TYPE>COLLECTION</TYPE>
<ID>RTSAllVouchers_FilterForVchNoAndVchType</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVCURRENTCOMPANY>Company Name</SVCURRENTCOMPANY>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
<SVFROMDATE>20170701</SVFROMDATE>
<SVTODATE>20170731</SVTODATE>
<RTS_KEY>Invoice Number</RTS_KEY>
<RTS_VOUCHERTYPENAME>Receipt</RTS_VOUCHERTYPENAME>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<COLLECTION NAME="RTSAllVouchers_FilterForVchNoAndVchType" ISINITIALIZE="Yes">
<TYPE>Voucher</TYPE>
<FETCH>NARRATION.*</FETCH>
<FETCH>LEDGERENTRIES.LIST.*</FETCH>
<FILTER>RTS_FilterForVchNoAndVchType</FILTER>
</COLLECTION>
<VARIABLE NAME="RTS_KEY">
<TYPE>String</TYPE>
</VARIABLE>
<VARIABLE NAME="RTS_VOUCHERTYPENAME">
<TYPE>String</TYPE>
</VARIABLE>
<SYSTEM TYPE="FORMULAE" NAME="RTS_FilterForVchNoAndVchType">
$ALLLEDGERENTRIES.BILLALLOCATIONS.NAME = $$String:##RTS_KEY and $VoucherTypeName = $$String:##RTS_VOUCHERTYPENAME </SYSTEM>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE>
当收据只有一张发票时,这工作正常。但在我的场景中,单个收据中有多个发票,即单个收据编号有多个发票编号。
当我将此请求发送给 Tally 时,这仅与收据中的第一个发票编号匹配。此请求不适用于在第一张发票之后输入的其他发票。
例如-假设我有收据编号为 R1 的收据。如果我在这张收据中添加三张发票,则显示 Inv1、Inv2 和 Inv3。
如果 <RTS_KEY>Inv1</RTS_KEY>
此请求发送到 Tally,则它会返回正确的输出作为收据。
但是如果<RTS_KEY>Inv2</RTS_KEY>
这个请求发送,那么它没有找到任何收据。
请帮我发送请求,因为它会搜索收据中出现的任何发票编号。