Time out error for master exporting for large data

Discussion in 'Tally Integration' started by Researcher, Jan 28, 2021.

    
  1. Researcher

    Researcher New Member


    The following xml request is used for exporting Master from tally

    Code:
    <!--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>
    But I am getting
    1.Timeout error , even for 30 minutes(for different timeout arguments) or
    2.Not enough memory resources available to complete this operation

    on code line "objtally.sEnd sendxml"

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

    The master file have large number of accounts (approx 30000 ledgers).Works properly for smaller tally files.

    How to solve this problem?
     


  2. Ketanpat

    Ketanpat New Member


    HOW are u reading the response?
    I am getting error while reading response "Thse data necessary to complete this operation is not yet available"
    My Tally server is running on localhost properly

    my code is

    string strList = objtally.responseText;
     
    Last edited: Feb 1, 2021


  3. Researcher

    Researcher New Member


    I am using below code to read response:

    Code:
    RequestXML = objtally.responseText
    adostream.Write objtally.responseBody
    But I am getting error before getting response.
    I am using Tally Erp9.
     
    Last edited: Feb 4, 2021


  4. Researcher

    Researcher New Member


    Using below xml request I was able to get Ledger and group related information.

    Code:
    <ENVELOPE><HEADER><VERSION>1</VERSION><TALLYREQUEST>Export</TALLYREQUEST><TYPE>Collection</TYPE><ID>TestLedgerList</ID></HEADER><BODY><DESC><TDL><TDLMESSAGE><COLLECTION NAME='TestLedgerList' ISMODIFY='NO'><Collections>Ledger,Group</Collections ><FETCH>name</FETCH></COLLECTION></TDLMESSAGE></TDL></DESC></BODY></ENVELOPE>
    But I also need information about tags
    ISSUBLEDGER
    ISREVENUE
    AFFECTSGROSSPROFIT
    ISDEEMEDPOSITIVE

    How to get the above tags with ledger and group information?
     


  5. Sai Vineeth

    Sai Vineeth Active Member


    First get list of ledgers from using above xml and save as list
    Iterate through list and request single ledger from tally using below xml
    Code:
    <ENVELOPE>
        <HEADER>
            <VERSION>1</VERSION>
            <TALLYREQUEST>Export</TALLYREQUEST>
            <TYPE>Collection</TYPE>
            <ID>Ledgers</ID>
        </HEADER>
        <BODY>
            <DESC>
                <STATICVARIABLES>
                    <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
    <!--Depending on from and to date opening bal will changw-->
                    <SVFROMDATE TYPE="Date">01-april-2018</SVFROMDATE>
                    <SVTODATE TYPE="Date">01-april-2020</SVTODATE>
                </STATICVARIABLES>
                <TDL>
                    <TDLMESSAGE>
                        <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="Ledgers">
                            <TYPE>Ledger</TYPE>
                            <NATIVEMETHOD>Address</NATIVEMETHOD>
                            <NATIVEMETHOD>*</NATIVEMETHOD> <!--fetch all fields from tally-->
                            <FILTERS>Ledgername</FILTERS>
                        </COLLECTION>
                        <SYSTEM TYPE="Formulae" NAME="Ledgername">$Name="replace name"</SYSTEM><!--change Replace name here-->
                    </TDLMESSAGE>
                </TDL>
            </DESC>
        </BODY>
    </ENVELOPE>
    This way even you have more ledgers also it will not effect performance.
     


Share This Page