0

以下 xml 请求用于从 tally 中导出 Master

<!--XML Tags to fetch Master Data from Tally--><ENVELOPE><HEADER><TALLYREQUEST>Export Data</TALLYREQUEST></HEADER><BODY><EXPORTDATA><REQUESTDESC><REPORTNAME>List of Accounts</REPORTNAME><STATICVARIABLES><SVCURRENTCOMPANY></SVCURRENTCOMPANY><DSPNAMESTYLE>$$SYSNAME:NAMEONLY</DSPNAMESTYLE><!--Specify the Period here--><SVFROMDATE></SVFROMDATE><SVTODATE></SVTODATE><SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT><!--Other possible values for SVEXPORTFORMAT tag are given below--><!--$$SysName:HTML--><!--$$SysName:SDF--></STATICVARIABLES></REQUESTDESC></EXPORTDATA></BODY></ENVELOPE>

但我越来越

  1. 超时错误,甚至 30 分钟(对于不同的超时参数)或
  2. 没有足够的可用内存资源来完成此操作

在代码行“objtally.sEnd sendxml”

[
        'CODE USED
Set objtally = New MSXML2.ServerXMLHTTP
objtally.setTimeouts 5000, 5000, 100000, 100000
objtally.Open "POST", "http://localhost:9000"
objtally.sEnd sendxml      
]

主文件有大量帐户(大约 30000 个分类帐)。适用于较小的理货文件。我正在使用下面的代码来阅读响应:

RequestXML = objtally.responseText
adostream.Write objtally.responseBody

但在得到回应之前我得到了错误。我正在使用 Tally Erp9。

如何解决这个问题呢?

4

1 回答 1

0

首先使用以下 XML 仅获取分类帐名称

<?xml version="1.0" encoding="utf-8"?>
<ENVELOPE>
    <HEADER>
        <VERSION>1</VERSION>
        <TALLYREQUEST>Export</TALLYREQUEST>
        <TYPE>Data</TYPE>
        <ID>List of Ledgers</ID>
    </HEADER>
    <BODY>
        <DESC>
            <STATICVARIABLES>
                <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
                <SVCURRENTCOMPANY><!--Specify Company here--></SVCURRENTCOMPANY>
                <SVFROMDATE TYPE="Date"><!--Specify the Period here--></SVFROMDATE>
            </STATICVARIABLES>
            <TDL>
                <TDLMESSAGE>
                    <REPORT NAME="List of Ledgers" ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No">
                        <FORMS>List of Ledgers</FORMS>
                    </REPORT>
                    <FORM NAME="List of Ledgers" ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No">
                        <TOPPARTS>List of Ledgers</TOPPARTS>
                        <XMLTAG>"List of Ledgers"</XMLTAG>
                    </FORM>
                    <PART NAME="List of Ledgers" ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No">
                        <TOPLINES>List of Ledgers</TOPLINES>
                        <REPEAT>List of Ledgers : Collection of Ledgers</REPEAT>
                        <SCROLLED>Vertical</SCROLLED>
                    </PART>
                    <LINE NAME="List of Ledgers" ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No">
                        <LEFTFIELDS>Name</LEFTFIELDS>
                        
                    </LINE>
                    <FIELD NAME="Name" ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No">
                        <SET>$Name</SET>
                        <XMLTAG>"NAME"</XMLTAG>
                    </FIELD>
                    
                    <COLLECTION NAME="Collection of Ledgers" ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No">
                        <TYPE>Ledger</TYPE>
                    </COLLECTION>
                </TDLMESSAGE>
            </TDL>
        </DESC>
    </BODY>
</ENVELOPE>

将分类帐名称保存在列表中,并通过遍历列表分别使用下面的 xml 获取每个分类帐

<ENVELOPE>
    <HEADER>
        <VERSION>1</VERSION>
        <TALLYREQUEST>EXPORT</TALLYREQUEST>
        <TYPE>Object</TYPE>
        <SUBTYPE>Ledger</SUBTYPE>
        <ID TYPE="Name">
            <!--Specify Ledgername here-->
        </ID>
    </HEADER>
    <BODY>
        <DESC>
            <STATICVARIABLES>
                <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
                <!--Specify other static variables here-->
            </STATICVARIABLES>
            <FETCHLIST>
                <FETCH>*</FETCH>
                <!--Fetch Fields here instead of "*" -->
                <!--
                <FETCH>PARENT</FETCH>
                <FETCH>ADDRESS</FETCH>
                -->
            </FETCHLIST>
        </DESC>
    </BODY>
</ENVELOPE>
于 2021-04-18T08:54:22.953 回答