Tally.Developer 9 - The Development Platform of Tally.ERP 9
The language used to build Tally.ERP 9 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.ERP 9, we make available Tally.Developer 9, an Integrated Development Environment (IDE) along with the full TDL source code.
TDL has been designed to provide the following features:
Rapid Development
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.
Action Driven Language with Procedural Capabilities
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.
Multiple Output Capability
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.
Data Management Capability
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.
Integration Capability
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 to Tally using Synchronisation
Tally to External Application and vice versa using the Interfaces Available
Tally to Web Service using HTTP Interface
Tally to External Applications using Export
Data from External Application in XML using Import
Tally Technology
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.
This unique architecture (an overview is here) delivers unprecedented capabilities required for any enterprise engagement:
Extendability & Customisability
Interface-ability & Integrate-ability
Supportability
Deploy-ability & Manageability
People Availability
Ecosystem Support
3rd Party Add-on's
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.
Architecture (Series A)
The Tally.ERP 9 architecture can be conceptualized as being divided into three layers:
The Application /Tally.ERP 9 Layer
The TDL Language and Interpreter Layer
The Platform Layer /Engine
The Application/Tally Layer
All the user interactions take place at this layer. It is through this interface that the user gets access to all the product functionalities.
The TDL Language and Interpreter Layer
This layer is an intermediate between the application and the platform layer. This mainly consists of:
- Tally Definition Language
- TDL Interpreter
Tally Definition Language
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 Interpreter
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.
Platform Layer
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:
- Database Engine
- ODBC Engine/Driver
- Parser
- Business Logic
- Function Library
- User Interface and Output Engine
- Memory Management
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).
Solutions with TDL
The TDL language capabilities allow the TDL programmer to build complete solutions and deploy them with ease. Listed below are a few capabilities
Rapid Report Design and development using various formats.
Advanced Data Processing Capabilities using Collections.
Complex Report generation using Tally Database.
User defined additional storage fields within the Tally database.
Customising Voucher Entry and printing in multiple formats
Multiple Output Capability like email, print, display etc
Modifying existing default Reports to incorporate/ alter required fields
Modify the existing user entry screens as required
Non-procedural language with procedural capability with User Defined Functions
Remote Access Capability using Collections.
Advanced Integration Capabilities of the Language
Using the capabilities listed above, we can achieve the following
Invoice Printing, Payment Advice Printing, Voucher Printing, etc. in user desired
pre-preprinted or plain formats
Various Columnar reports like Batch wise Item wise Reports, Item wise Party wise
Outward and Inward Movement Analysis
Various security related controls like Voucher Type wise Entry Control, control the
table of selection based on users like Sales persons can view only Debtors Ledgers, etc.
Customisation of Synchronization i.e., One way sync, Masters Only, Voucher Type wise
Sync between various branches and HO
Creation of multiple Approval Levels
abels and Bar Code Printing
Auto creation of Masters/ Transactions as required
Integration 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
Online Mode
Tally to Tally using Synchronisation
Tally to External Application and vice versa
using the Interfaces Available
Tally to Web Service using HTTP Interface
Offline Mode
Tally to External Applications using Export
Data from External Application in XML using Import
The various terminologies stated above are described as below
Synchronisation
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.
Import
If the masters and transactions is available in Tally.ERP 9 compatibly XML format, they can be directly imported in Tally.ERP 9.
Export
Tally.ERP 9 allows the export of reports in four standard formats, viz. ASCII (Comma Delimited), Excel, HTML, and XML.
Tally API's
Tally.ERP 9 communicates with External Application using these interfaces:
XML Interface(Get/Post)
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
ODBC Interface(Read Only)
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.
DLL
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.
Technology Training
Tally delivers comprehensive hands-on, instructor led TDL training programs across the year, at several centres in India.
These are, typically, a week long, full day programs. Please contact our regional offices for more information on the availability of seats. The next training schedule will be announced soon.
The Basic Program course covers these topics, while the advanced one covers these.