A blog on Tally Integration, to import and export data from Tally.ERP programmatically using VB6, VB.NET,C#,ASP.NET etc

Friday, March 21, 2008

Tally 9 Release 2.1 - Error: No Valid Names!

Before we look into the cause and solution for the aforesaid Tally Error message, let's revisit Tally 9 Release 2.1 as there has been a major change in the XML tags which was discussed in my previous post also.

Here's what we are referring to:-

"When we export Vouchers or Masters data from Tally 9 Release 2.1, the XML tags that get generated are in proper-case whereas in the previous versions/releases the XML tags generated were in upper-case".

As XML tags are case-sensitive, the tags generated by Tally 9 Release 2.1 which are in proper-case like <Voucher> are not same as that generated by the previous versions of Tally which were in upper-case <VOUCHER>.

Given the above situation, we were trying to write XML tags that would work with all version of Tally. i.e. Tally 9 Release 2.1 and the older versions too.

We started with the Task of pushing (importing) data into Tally and choose Ledger Master to begin with. And here are the XML tags that we had written based on the Tally 9 Release 2.1 format.

XML tags for Ledger Master (Proper-case)

<ENVELOPE>
<HEADER>
<TALLYREQUEST<Import Data</TALLYREQUEST>
</HEADER>
<BODY>
<IMPORTDATA>
<REQUESTDESC>
<REPORTNAME<All Masters</REPORTNAME>
</REQUESTDESC>
<REQUESTDATA xmlns:UDF="TallyUDF">

<TALLYMESSAGE>
<Ledger NAME="ABC">
<Name.LIST>
<Name>ABC</Name>
</Name.LIST>
<Parent>Sundry Debtors</Parent>
</Ledger>
</TALLYMESSAGE>

</REQUESTDATA>
</IMPORTDATA>
</BODY>
</ENVELOPE>

Remarks:-
1) Notice that the XML tags within the <TALLYMESSAGE> are in proper-case whereas the other tags are in upper-case. We have written it this way as Tally 9 Release 2.1 generates tags in this style.
2) We had not included the <LanguageName.LIST> as this was not supported by Tally 7.2

Next, we used the above XML tags with different versions of Tally to create Ledger Master. And here's what we found.

Case 1: Using XML tags (written in proper-case) with Tally 9 Release 2.1
When we used the aforesaid XML tags (having proper-case) with Tally 9 Release 2.1, an error message was generated by Tally and no master-record was created in Tally. The error message was "No Valid Names!"

Case 2: Using XML tags (written in proper-case) with Tally 7.2
When we used the aforesaid XML tags (having proper-case) with Tally 7.2 Release 3.12, it worked fine and the Ledger master was created.

Next, we tried XML tags written in upper-case and here are our findings.

XML tags for Ledger Master (upper-case)

<ENVELOPE>
<HEADER>
<TALLYREQUEST<Import Data</TALLYREQUEST>
</HEADER>
<BODY>
<IMPORTDATA>
<REQUESTDESC>
<REPORTNAME<All Masters</REPORTNAME>
</REQUESTDESC>
<REQUESTDATA xmlns:UDF="TallyUDF">

<TALLYMESSAGE>
<LEDGER NAME="ABC">
<NAME.LIST>
<NAME>ABC</NAME>
</NAME.LIST>
<PARENT>Sundry Debtors</PARENT>
</LEDGER>
</TALLYMESSAGE>

</REQUESTDATA>
</IMPORTDATA>
</BODY>
</ENVELOPE>

We used the above XML tags (written in upper-case) with different versions of Tally to create Ledger Master. And here's what we found.

Case 1: Using XML tags (written in upper-case) with Tally 9 Release 2.1
It worked fine and Ledger master is created.

Case 2: Using XML tags (written in upper-case) with Tally 7.2 Release 3.12
It worked fine and Ledger master is created.

Surprising, though Tally 9 Release 2.1 generates XML tags in proper-case, but when we tried pushing data using XML tags written in same style (i.e. proper-case) it did not work. However, when we changed the XML tags to upper-case, it worked fine.

CONCLUSION

The test-experiments that we have done so far, suggest that we use XML tags in UPPER-CASE for pushing data into Tally, as this works with all the Tally versions including the latest Tally 9 Release 2.1

A BIG-RELIEF for those who have written programs for Tally Integration as these programs are likely NOT to be affected due to change in the Tally 9 Release 2.1 XML format. Also, note that all sample XML tags given at our site are in upper-case and hence will work with all versions of Tally software including Tally 9 Release 2.1

Of-course data conversion modules will (or may) be affected and may not function properly with Tally 9 Release 2.1 as mentioned in my previous post.


Thursday, March 20, 2008

Tally 9 Release 2.1 has a major BUG!!!

We have recently noticed a major issue with Tally 9 Release 2.1. Though this issue is NOT yet officially confirmed by Tally Solutions-Bangalore, it prima facie appears to be a BUG.

What is the BUG ?

This BUG relates to XML tags that are generated when data is exported from Tally 9 Release 2.1 either manually or programmatically. The XML tags names in Tally 9 Release 2.1 have been changed.

You can verify the same using the following option in Tally:-
Gateway of Tally -> Display -> Daybook -> Alt+E

Now, let's have an in-depth look at this issue. XML tags for both Tally 9 Release 2.1 and Release 2.0 have been provided underneath for your reference.

Tally 9 Release 2.1 exported XML Tags (extracts)

<Voucher REMOTEID="ea93b61d-be0a-4c3d-a725-55de09b86d37-00000001" VCHTYPE="Purchase" ACTION="Create">
<Date>20080331</Date>
<GUID>ea93b61d-be0a-4c3d-a725-55de09b86d37-00000001<GUID>
...other tags...
</Voucher>

Now, just look at the XML tags generated by Tally 9 Release 2.0 (or lower version)

<VOUCHER REMOTEID="ea93b61d-be0a-4c3d-a725-55de09b86d37-00000001" VCHTYPE="Purchase" ACTION="Create">
<DATE>20080331</DATE>
<GUID>ea93b61d-be0a-4c3d-a725-55de09b86d37-00000001<GUID>
...other tags...
</VOUCHER>

Noticed anything. No, not yet. No problem, just continue reading....

XML tags are case-sensitive
Yes. XML tags are case-sensitive. Notice that the Tags generated by Tally 9 Release 2.1 are in proper-case whereas in the previous Releases the XML tags were in upper-case. In simple words, <Voucher> is not the same as <VOUCHER>

Tally 9 Release 2.1 generates this :-
<Voucher>

Tally 9 Release 2.0 or previous version generates this:-
<VOUCHER>

Who all will be affected by this ?
End-users and programmers both who are using or have developed DATA transformation modules. Like converting Sales data of one Company as Purchase data for another Company.

There might be several other situations wherein this issue might create problems. One of such situations is given below.

Technical stuff for programmers
This will NOT work with Tally 9 Release 2.1 but works with previous Tally versions
SelectNodes('//VOUCHER')

This will work with Tally 9 Release 2.1 but will NOT work with previous Tally versions
SelectNodes('//Voucher')

Solution for this BUG

As the aforesaid BUG will affect some specific type of programs only, developers need to understand and analyze whether their programs would be affected in Tally 9 Release 2.1 or not. If your program is affected, then changes need to be done in your code/program.

Alternative 1
One solution for the above issue is to convert all nodes-names (XML-tag names) to upper-case and then do the processing. In other words, the XML-tags that are generated by Tally 9 Release 2.1 which are in proper-case need to be converted into upper-case, so that there is uniformity.

Alternative 2
Another alternative is to keep provision for both types of XML-tags (i.e. having XML-tags with proper-case and upper-case) in your programs.

The last and the easiest is to wait for Tally Solutions, Bangalore to fix this issue or advice your Client to use Tally 9 Release 2.0 (and not Release 2.1).



Monday, March 17, 2008

Tally Error : Proper Ref Name not given

Last week, while working on Tally XML tags, I got this error:-

<LINEERROR> xx: Proper Ref Name not given for 'xxx'!(FOR OBJECT: 'REMOTEID:xxx')</LINEERROR>

Though I could locate the mistake, it took few hours to do so. Here's what caused the problem.

"The tag <NAME> used within the <BILLALLOCATIONS> tag was blank. As the name suggests, the <BILLALLOCATIONS> tag is used to specify the Bill details viz Bill Number and Bill Amount.

The aforesaid tags are used when the feature "Bill-by-bill" is enabled for the given Party (Ledger account)


Saturday, March 1, 2008

Tally Integration with Java

In the recent past, we have received several queries from Customers inquiring about whether the RTSLink DLL can be used in Java for Tally Integration.

In this respect, please note the following:-
1) RTSlink DLL cannot be used with Java.
2) However, Shweta Computers can provide customized solutions for Integrating Java Applications with Tally Software.

Please write to sales @ rtslink. com (remove spaces) for more information on integrating Java applications with Tally 9.


Monday, January 14, 2008

RTSlink DLL completes one year

First Anniversary of RTSlink DLL

It has been one year since RTSlink DLL was launched.

Many things have changed since then. In the initial days (when RTSlink DLL was launched), very few people were aware of "Tally Integration". In fact, the Tally Integration and Tally Customization activities were restricted to small community of Tally professionals.

RTSlink DLL was launched in January 2007. The next task at hand was to provide support to various Software professionals using different programming languages like Visual Basic; Visual Foxpro; C; C++; Visual C++; C#, Delphi, VB.NET, ASP.NET etc. After sometime, the need for TDL coding aroused. This was due to limitations in several Tally reports as data was to be retrieved programmatically. And this led to the birth of tdlplayground, wherein sample TDL programs were put-up for Tally lovers, free-of-cost. I remember asking some Tally professionals about adding one or two new fields in Tally. And the cost ranged from Rs 5000/- to Rs 7000/- for merely adding one or two fields. Subsequently, several TDL programs were put up at tdlplayground and some programs like TDL code for Recycle-bin became quite popular.

Our clients include from Individual programmers to Public Limited Companies. Here's are some of our clients (randomly selected from our software registration database).

Initially, some concerns were raised about the Product and the support services that we provide. It took lot's of efforts in convincing what RTSlink DLL is and how it works. Our target was to provide support services/solutions within 24 to 48 hrs. Though this may appear to be normal and nothing extra-ordinary, those who have provided support-services to Software professionals may be well-aware what it takes to write / code programs in such short timings. The average time has been less than 24 hrs.

And here we are. As of now, we have :-
a) Over 10,000 installations.
b) Over 100 articles about using RTSlink DLL for Tally Integration at our blog-site.
c) Sample Tally XML tags for most of the important Tally Reports.

Tally Integration made easy
Recently, we have launched udi-Magic [Professional] that allows users to retrieve data from almost any external database like MySQL, MS-Access, DBFs, SQL Server and others and send it directly to Tally Software. And all this happens by merely writing few SQL-SELECT statements and XML tags.

We thank all our Customers who have reposed faith in us.

ANNIVERSARY OFFER

Shweta Computers is pleased to offer Additional Licenses for RTSlink DLL on this occasion to all those who purchase RTSlink DLL from 14-1-2008 to 21-1-2008. Offer available to New and Old Customers. Contact Shweta Computers now.

Best wishes to all for 2008. Best wishes for Makar Sankranti.

Saturday, January 12, 2008

SQL Server to Tally Software

Tally Integration made Easy

New Release 1.3
udi-Magic v3.0 Release 1.3 [Professional] allows you to transfer data directly from MS SQL Server to Tally Accounting Software using few SQL-SELECT statements and XML tags.

Supports all versions of Microsoft SQL Server.

Click here for more details on MS SQL Server to Tally



Tuesday, January 8, 2008

XBase (DBF) to Tally Software

Tally Integration made Easy

New Release 1.2
udi-Magic v3.0 Release 1.2 [Professional] allows you to transfer data directly from XBase (DBF) files to Tally Accounting Software using few SQL-SELECT statements and XML tags.

Supports
a) DBase
b) Fox 2.x
c) Visual Foxpro DBFs and DBC files
d) Other XBase file formats.

Click here for more details on XBase (DBF) to Tally

Friday, December 21, 2007

Ledger and StockItem Masters

How can I retrieve Ledger and StockItem Masters with their Closing balances ?

You can retrieve Ledger & StockItem masters with their Closing balances either using SQL-SELECT or XML Tags.

SQL-SELECT statement

Ledger-Master
SELECT $Name, $ClosingBalance FROM Ledger

StockItem Master
SELECT $Name, $ClosingBalance FROM StockItem

XML tags

Refer this link for more information XML tags to retrieve Tally Masters



Fetch Currency information from Tally Software

You can retrieve Currency details using SQL-SELECT or XML tags as given below:-

Using SQL-SELECT
SELECT $Name,$OriginalSymbol FROM currency

Using XML tags
<ENVELOPE>
<HEADER>
<TALLYREQUEST>Export Data</TALLYREQUEST>
</HEADER>
<BODY>
<EXPORTDATA>
<REQUESTDESC>
<REPORTNAME>List of Accounts</REPORTNAME>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
<ACCOUNTTYPE>Currencies</ACCOUNTTYPE>
</STATICVARIABLES>
</REQUESTDESC>
</EXPORTDATA>
</BODY>
</ENVELOPE>



Friday, November 9, 2007

Access Tally Data on a Remote Computer using RTSlink DLL

FAQs: Tally Integration using RTSlink DLL

Can I use RTSlink DLL to access Tally data from a Computer which is located in a different city or country ?

Yes. You can use RTSlink DLL to access (push or pull) Tally data from a Remote Computer which is located in a different city or country.

LIVE DEMO

Live demonstration to access (pull and push) Tally data along with support and guidance is provided to registered users of RTSlink DLL v1.9.

DEMO Situation 1
We shall provide support / guidance and demonstrate how you can access Tally data from our Computer which is located at Gandhidham, Gujarat, India.

DEMO Situation 2
We shall demonstrate and access Tally data from your Computer where-ever you are located.

Please see:-
- This is available to registered users of RTSlink DLL v1.9 only. (i.e. those who have purchased and registered RTSlink DLL v1.9)
- Registered users who are interested in Demo are requested to write to support@rtslink.com with their RTSlink DLL serial number and fix timings for Demonstration.
- Demo shall be provide once only.
- Users must have Internet connection, preferably broad-band.
- Transfer of data over Internet may be slow/time consuming.