The language used to build Tally Prime is called TDL – Tally Definition Language, briefly touched upon in Internal Architecture & Design.As a Tally Service Partner, a Tally Integrator, an internal IT ‘shop’ at a customer location or a free lancer developing extensions to Tally Prime, we make available Tally Prime, an Integrated Development Environment (IDE) along with the full TDL source code.TDL has been designed to provide the following features:
TDL is a language based on definitions. A definition language provides the users with ‘Definitions’ that can be used to specify the task to be performed. It is possible to reuse the existing definitions and deploy applications quickly. This is a language meant for rapid development. It is possible to develop complex reports within minutes. User can extend the default functionalities of the product by writing only a few lines of code.
TDL is an Action Driven language where the programmer can only control as to what happens when a particular event takes place. The action thus triggered can either be a platform defined action or an Action created by TDL programmer using User Defined Functions. The fundamental aspects of conditional evaluation and looping have been introduced into the language. The non-procedural elements are largely towards presentation layers and data gathering. The procedural elements can be used for flow control, computation and object data manipulation.
Using the same language it is possible to output to multiple output devices and formats .Whenever an output is generated this can be displayed on the screen, printed ,transferred to a file in particular format, mailed or transferred to a webpage using Http protocol.
Tally follows a hierarchical object oriented data structure. TDL provides the capability of creating and manipulating these objects with ease. Apart from the predefined objects user can also store and manipulate data as required by him.
To meet the challenges of business environment it becomes absolutely mandatory to share information seamlessly across applications. Integration becomes a crucial factor in avoiding the duplication of data entry. The available Tally API’s ODBC, XML and DLL allow integration between
Tally.Developer 9 is a comprehensive development environment designed specifically for the TDL (Tally Definition Language). TDL is the development language of Tally.ERP 9 and is used to build additional functionality into the product. TDL enables the programmers to develop and deploy solutions rapidly with ease.
Tally.Developer 9 makes programmer’s life easier with powerful features like syntax highlighting, column selection and auto completion. Apart from this, the definition browser, schema browser and function browser are also available as a part of the product providing instant reference to the TDL programmer.
Tally.Developer 9 is an editor, search engine and an compiler as well. It also provides the tools to decompile a TCP, migrate an encrypted TDL file and Tally Connector to send XML request to Tally get the response in XML format.
The TDL code can be configured to run on one, more or all Tally serial number(s) while creating the TCP (Tally Complaint Product) file and also stamp the TCPs for a specific site. This enables you to control license usage and minimize revenue leakage.
Under the hood of the deceptively simple user experience of Tally.ERP 9 lies over 20 years of deep technology muscle. This section gets into this aspect in full detail.
Geared towards the more technical audience, our development partners, Independent Software Vendors, business ‘component’ builders and in-house IT shops at customer locations, the information here will also enable you to appreciate potential technical business opportunities with Tally.ERP 9.
Tally.ERP 9 is, foremost, a platform first. Tally.ERP 9, as a user sees it, is a product developed on the platform. The entire functional richness and user experience that you see has been built on this platform.
Access to this platform is via our own Domain Specific Language – Tally Definition Language (an overview is here), the complete TDL source code for Tally.ERP 9 product, a development platform (Tally.Developer 9), complete documentation, training programs and a dedicated support helpdesk. Commercially, as our development partner, you are supported via the Tally Service Partner, Tally Integrator & Tally Extender programs.
The Tally.ERP 9 architecture can be conceptualized as being divided into three layers:
All the user interactions take place at this layer. It is through this interface that the user gets access to all the product functionalities.
This layer is an intermediate between the application and the platform layer. This mainly consists of:
Tally Definition Language (TDL) provides capabilities for Rapid Development, Rendering, Data Management and Integration. This is the language used to deliver the capabilities that the platform provides – the entire user interface is built using TDL.
TDL is an Action driven language based on definitions. It comprises of the User Interface and Info/Data objects. User Interface Objects mainly determine the behavior of the product in terms of user experience. Info/Data objects are mainly used for data persistence in the Tally Database.
TDL works in an interpreted environment. An action performed by a user will trigger a particular segment of code to get executed. The interpreter examines each line and executes them.
The capabilities which TDL offers are due to the capabilities provided by the platform layer. This is the lowermost layer which interacts with the OS and the file system. The various components of the platform layer are:
All the retrieval and manipulation requests to the database by the application program are handled by the Database Engine. This is a true OODBMS. It is possible to store data as objects and retrieve data as objects. Stored as a block of data, this allows faster retrieval of data. Object Oriented Recursive Management System follows the concept of Flexi-Length Record, Flexi-Field, and Self-Indexed weighted file structure for an extremely compact and fast database. Fault tolerance is built in and along with transaction support (using roll forward capability), this provides an extremely robust system to withstand several system failures.
The File System consists of Data files (Master, Transaction, Link Masters), Message Files (for transaction management) and State Files (for concurrency and exclusivity control).
The TDL language capabilities allow the TDL programmer to build complete solutions and deploy them with ease. Listed below are a few capabilities
Tally.ERP 9 has been developed keeping in mind that some users will require features and capabilities that are not delivered out of the box. This calls for the ability to reach out to other software applications.
The many strengths of Tally.ERP 9 also make it an ideal product for integration with other products – which calls for the ability to provide the necessary APIs for read and write.
Tally.ERP 9 as a complete business solution provides different ways to integrate data. The various API’s available in Tally are
These allows seamless integration between application/database in two modes
The various terminologies stated above are described as below
Tally.ERP 9 to Tally.ERP 9 integration is done through synchronisation. All the branches can periodically synchronise their data with the head office. Data Synchronisation refers to a process where data is replicated between two or more locations. It enables the branch offices to send data to the head office and vice versa, over a network with a dynamic IP address or static IP address. Data Synchronisation flows both ways, i.e., data flows from the Client to the Server and vice-versa.
If the masters and transactions is available in Tally.ERP 9 compatibly XML format, they can be directly imported in Tally.ERP 9.
Tally.ERP 9 allows the export of reports in four standard formats, viz. ASCII (Comma Delimited), Excel, HTML, and XML.
Tally.ERP 9 communicates with External Application using these interfaces:
Using this interface Tally.ERP 9 can behave as a Server handing XML Request from external Applications. Tally as a Client can also send an XML Request to a Web Service
External Applications can retrieve data from the Tally.ERP 9 database by making an ODBC/SQL call. In the same way Tally.ERP 9 can retrieve data from External Data Source using an ODBC/SQL call.
The DLLs developed using other application can be used to perform operations that are not available in the product. These external DLLs can be called from Tally.ERP 9 using the TDL language.
Brilliant Technologies is a Tally Prime Software providing comprehensive accounting solutions tailored for businesses of all sizes. With Tally software, companies can streamline financial management, improve reporting accuracy, and enhance operational efficiency.