What's New

What's New

Tally.Developer 9 Release 2.0 Available Now

The powerful Remote Edit feature available in the latest version of Tally.ERP 9 Release 2.0 called for complementing changes in the Default Code in order to facilitate this capability. Now, you get the source code of Tally.ERP 9 Release 2.0 in the current version of the product! In addition, the changes at the feature and functionality level are done keeping in mind the documentation and help requirements of the TDL developer community.

The interesting highlight of this Release is the introduction of Dictionary Manager Tool. This will revolutionize the usage of Tally.ERP 9 across the world in any preferred language used for official purposes.

TDL Enhancements in Tally.ERP 9 Release 2.0

1. TDL Procedural Enhancements
With every Release the TDL Procedural Capabilities are getting strengthened at a commendable pace. The latest along this path is the File Input Output Capability.

Procedural File Input/Output Capability

This capability introduced in TDL now will pave the way for supporting import/export operations from the Tally DataBase in the most amazing way. It will now be possible to export almost every piece of information in any Data Format which we can think of. We support Text and Excel Format which allow data storage in SDF-Fixed Width ,CSV-comma separated etc sufficing the generic data analysis requirements of any business.

The Read/Write exchange is supported across the various protocols like ftp and http as well. Inside a function the file contexts available are Source File and Target File. The data can be read from one file and can be written to another file simultaneously.

It is now possible to perform Read/Write on a Text and Excel File without the dependency on any of the definitions. This gives complete control in the hands of the programmer to perform these operations. We have provided a comprehensive set of Actions and Functions to perform the various file operations.

For a text file

• Read Operation : Various functions for this support reading a specified no of characters,
reading a line and moving the file pointer to a specific location
• Write Operation : Various Actions for this support writing a specified no of characters, writing
a line and moving the file pointer to a specific location.

For a Excel File

• Read Operation : Various functions for this support locating the Active Sheet, finding the
sheet name from index and vice versa and reading data from a specified cell.
• Write Operation : Various Actions for this support Adding a new sheet, making a sheet Active,
Writing to a cell, writing an entire row or an entire column.

Function Parameter Changes

The various changes at this level allow the user to pass optional no of parameters to a function for eg: If a function takes three parameters, it is now possible to pass only one or two parameters while calling the functions as it is possible to specify default values for those parameters inside the function declaration itself.

2. Variable Framework Enhancements
In the prior releases we have experienced major changes to the Variable Framework in form of introduction to Compound Variables and List Variables. We are continuously enhancing and making changes to ensure consistency and uniformity across the TDL framework. The following enhancements have taken place in variable framework recently.

Persistence at Report Scope

Earlier we supported persistence of the variable at System scope Only . This has been extended for Report Scope Variables as well. The actions supported for this allow saving of a list of variables to a specific file and then retrieving from the file across Tally sessions. The file format supported for this is a ".pvf"( Portable Variable Format) file.

Multiple Instances & Replicating Variables

Till date it was not possible to declare two variables of same type. For eg : If we had a Compound Variable by the name Employee, we could declare a variable by the name Employee at various scopes ie at System/Report/Function. The only way to declare multiple variables of type Employee was to create a List Variable. In cases where we need to refer to more than one variable of type Employee by different names, the need to have multiple instances becomes mandatory. With the current enhancement it is now possible to declare, refer and operate on two or more variables Emp A and Emp B of same type Employee.

Actions to copy the data from one variable to another is also supported.

Absolute Specification in Dotted Syntax

The dotted syntax support for variables was limited to Relative specification ie it was possible to access the value of a variable starting from at the current scope only. This dotted syntax for variables has been enhanced to support absolute specification ie it is now possible to access variable values from parent scope as well. For eg : If we are at function B which is called from Report A, we can access a variable abc available at Report A using absolute specification.

3. Event Framework Enhancements

Timer Event Support

This is a path breaking enhancement in Tally which will enable scheduled execution of any Action. This has been supported with the introduction of a System Event called Timer. We can have a set of timer events of specified durations and trigger an Action on the same. For eg: if we require Synchronization to be triggered every one hour we can define a Timer event which triggers the action Sync. Actions for Starting and Stopping the timer have been provided.

4. Enhancements for Remote Edit
There have been various enhancements at the TDL level to enable Remote Edit Capability in the product. The enhancements are listed as below

Fetch Object Attribute Changes

The attribute Fetch Object is supported at Report, Form, Field and Function level as well. The Object Name specification in the syntax allows expressions now. It is also possible to specify multiple Object Names separated by the Fetch Separator Character. A new function $$FetchSeperator is introduced to return this character.

Fetch Values Atribute Introduced

The evaluation of External Methods of an Object requires Object Context to be available at the Client End. A new Attribute Fetch Values is provided at the Report level to specify the list of External Methods.

Multi Objects Attribute Introduced

Whenever multiple Objects of the same collection is getting modified at the Client End, a new attribute called MultiObjects is introduced at the Report Level to enable the same.

Modifies Attribute Changes

The Modifies attribute of the field is changed to accept a third parameter(optional) which is an expression. This allows the variable to be modified with the value of the expression rather than the field value.

Collection Attribute-Parm Var

As we already know the Collection Artifact evaluates the various attributes either during initialization or at the time of gathering the collection. It may require various inputs from the Requestor context for the same.

The direct reference of values/expressions from the report elements and objects in the collection at various points creates various issues like code complexity, performance lapses and non availability of these values on Server in Remote Environment.

In order to overcome the above we have introduced a new Collection attribute Parm Var.

Parm Var in collection is a context free structure available within the collection. The requestors Object context is available for the evaluation of its value. This is evaluated only once in the context of the caller/requestor. This happens at collection initialization and the expression provided to it is evaluated and stored as a variable which can be referred within any of the attributes of the collection at anytime and is made available at the Server end as well.

5. Generic Capabilities

Copy File

A new Action Copy File has been introduced. This allows Copy of a file across folders, upload and download to a ftp path.

Refresh Data

In a multiuser environment, the data is being manipulated by multiple users at the same time. The changes in data will affect the data displayed in various Reports. A report which is opened on a system may not display the correct information since it is not continuously Refreshed. In order to achieve the same a new Report Specific Action Refresh Data has been introduced. This Action coupled with its usage along with timer event can be used to refresh a Report at periodic intervals

Sleep

Action SLEEP is introduced to specify time delays during execution of the code. For few seconds, the system will be dormant or in suspended mode.