验证从暂存中集成到理货中的代金券 table

Verify vouchers integrated into tally from staging table

如果我在 SQL 服务器数据库分段 table 中有 5 张优惠券,并且我使用 tally XML API.

导入了所有 5 张优惠券。

如何仅使用凭证编号验证和交叉检查理货和 SQL 之间的凭证?

我是否必须从理货中读取整个凭证摘要,然后从 XML 数据中提取凭证编号?提取凭证编号后,我可以将其与分期进行比较 table。

如何在理货报告中只导出凭证编号或一个特定字段?

你知道导入Tally后的凭证号吗?根据对此的回答,我会更新我的回答。

案例 1: 如果您知道优惠券编号,您可以使用 Tally XML 请求特定的优惠券编号,如果您得到肯定的答复,那么该凭证存在于理货中。无需阅读优惠券摘要。您只需要在 XML 响应中查找特定元素标签 - 如果该元素存在 = 凭证存在。

案例2:但我假设您不知道在导入过程中创建的凭证号。在这种情况下。这会有点棘手。让我知道,我会用我有的任何解决方案进行更新。

--更新--

经过讨论(见评论),我正在根据案例 1 更新答案。 XML 请求结构 -

<ENVELOPE>
  <HEADER>
    <VERSION>1</VERSION>
    <TALLYREQUEST>EXPORT</TALLYREQUEST>
    <TYPE>COLLECTION</TYPE>
    <ID>FindParticularVoucher</ID>
  </HEADER>
  <BODY>
    <DESC>
      <STATICVARIABLES>
        <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
        <SVCURRENTCOMPANY>FOO COMPANY</SVCURRENTCOMPANY>
        <VCHNO>ABC1234</VCHNO>
      </STATICVARIABLES>
      <TDL>
        <TDLMESSAGE>
          <COLLECTION NAME="FindParticularVoucher" ISINITIALIZE="YES">
            <TYPE>Voucher</TYPE>
            <FILTER>GetInvoiceVoucher</FILTER>
          </COLLECTION>
          <VARIABLE NAME="VCHNO">
            <TYPE>String</TYPE>
          </VARIABLE>
          <SYSTEM TYPE="FORMULAE" NAME="GetInvoiceVoucher">$VoucherNumber = $$String:##VCHNO</SYSTEM>
        </TDLMESSAGE>
      </TDL>
    </DESC>
  </BODY>
</ENVELOPE>

记得在 SVCURRENTCOMPANYVCHNO Xml 标签中更改公司名称和凭证编号。

您可能会收到复杂的 XML 响应。您需要做的就是在集合节点 - Envelope/Body/Data/Collection/Voucher 中查找名为 Voucher 的 XML 节点。如果此 VoucherNode 存在 = 您的凭证存在于理货中。在这种情况下,您不需要导出任何数据或凭证编号。

当您在 Tally 中使用 XML 创建代金券时,您会在成功创建时收到 XML 响应。该响应有一个标签,其中包括您提供的优惠券编号和一个 LASTVCHID。这就像理货中的主 ID。然后,只需请求该主 ID 并检查响应就更容易了。如果找不到该主 ID,它会报错(最重要的是,错误只是一行 XML 响应,因此不需要解析)。

查看此 Whosebug link 了解更多详情 -