【问题标题】:How to get All companies data from tally xml api?如何从tally xml api获取所有公司数据?
【发布时间】:2018-12-29 05:28:30
【问题描述】:
我正在尝试通过 API 从计数中导出数据。假设tally配置了多个公司,我只能使用以下payload来获取当前公司的购买凭证。
<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获取选定公司并获取购买凭证?
【问题讨论】:
标签:
xml
integration
tally
【解决方案1】:
您缺少一些标签并且没有提及您想要获取的内容。示例 -
<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 响应,并且您需要反序列化它。这就是计数的工作原理。