1

我正在尝试通过 API 从计数中导出数据。比方说,tally 配置了多个公司,我只能使用以下有效负载获得 svcurrent 公司购买凭证。

<ENVELOPE>  
 <HEADER>  
   <TALLYREQUEST>Export Data</TALLYREQUEST>  
 </HEADER>  
 <BODY>  
   <EXPORTDATA>  
     <REQUESTDESC>  
       <!-- Specify the Report Name here -->  
       <REPORTNAME>PurchaseVouchers</REPORTNAME>
       <STATICVARIABLES>
            <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
           <!--Specify the Period here-->
            <SVFROMDATE>20181001</SVFROMDATE>
            <SVTODATE>20181001</SVTODATE>
       </STATICVARIABLES>
     </REQUESTDESC>  
   </EXPORTDATA>  
 </BODY>  
</ENVELOPE>

如何通过API获取选定公司并获取采购凭证?

4

1 回答 1

0

您缺少一些标签并且没有提到您想要获取的内容。例子 -

<ENVELOPE>
  <HEADER>
    <VERSION>1</VERSION>
    <TALLYREQUEST>EXPORT</TALLYREQUEST>
    <TYPE>COLLECTION</TYPE>
    <ID>FindParticularVoucher</ID>
  </HEADER>
  <BODY>
    <DESC>
      <STATICVARIABLES>
        <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
        <SVCURRENTCOMPANY>COMPANY NAME</SVCURRENTCOMPANY>
        <VCHTYPE>PurchaseVouchers</VCHTYPE>
        <SVFROMDATE TYPE="DATE">01-05-2019</SVFROMDATE>
        <SVTODATE TYPE="DATE">31-05-2019</SVTODATE>
      </STATICVARIABLES>
      <TDL>
        <TDLMESSAGE>
          <COLLECTION NAME="FindParticularVoucher" ISINITIALIZE="YES">
            <TYPE>Voucher</TYPE>
            <FETCH>ALLLEDGERENTRIES.*</FETCH>
            <FETCH>ALLINVENTORYENTRIES.*</FETCH>
            <FILTER>GetInvoiceVoucher</FILTER>
          </COLLECTION>
          <VARIABLE NAME="VCHTYPE">
            <TYPE>String</TYPE>
          </VARIABLE>
          <SYSTEM TYPE="FORMULAE" NAME="GetInvoiceVoucher">$VoucherTypeName = $$String:##VCHTYPE</SYSTEM>
        </TDLMESSAGE>
      </TDL>
    </DESC>
  </BODY>
</ENVELOPE>

对于购买凭证,在标签VCHTYPE与其结束标签之间 - 只需插入您的购买凭证的名称即可。例如,在我的公司中,我有两种不同类型的购买凭证,其中一种名为Purchase Interstate。这就是我将在这些标签之间插入的内容。

现在如果你想获取所有的购买凭证类型,你可以替换VCHTYPE标签如下 -

<VCHTYPE1>Purchase Interstate</VCHTYPE1>
<VCHTYPE2>Purchase State</VCHTYPE2>

在 XML 的末尾,您的公式(在SYSTEM标记中)将更改为 -

<SYSTEM TYPE="FORMULAE" NAME="GetInvoiceVoucher">$VoucherTypeName = $$String:##VCHTYPE1 or $VoucherTypeName = $$String:##VCHTYPE2</SYSTEM>

注意 - 确保更改此 XML 代码中的公司名称。请记住,您将返回一个 XML 响应,并且您需要反序列化它。这就是计数的工作原理。

于 2019-06-04T11:15:31.000 回答