Tally Definition Language – An Introduction
Tally Solutions has been in the business of providing complete business solutions for over 20 years to MSME (Micro, Small and Medium Enterprise) and to a large extent to LE (Large Enterprise) businesses. With over 3 million users in over 100 countries, Tally, the flagship product, continues to be the preferred IT solution for a majority of businesses every year.
Tally, the flagship product (which started as a simple bookkeeping system, 20 years ago), is today a comprehensive, integrated solution – covering several business aspects of an enterprise. These include Accounting, Finance Management, Receivables/Payables, Inventory Accounting, Inventory Management, BoM-based manufacturing inventory, multi-location/multi-currency/multi- unit handling, Budgets and Controls, Cost and Profit Centres, Job Costing, POS, Group Company consolidations, Statutory Taxes (Excise, VAT, CST, TDS, TCS, FBT, etc), Payroll Accounting, and other major and minor capabilities. It has served as an ERP for small enterprises over the past 12 years.
With the introduction of Remote Access, Remote Authentication, Support Centre, Central Administration and Account Management inherently supported in the product, it can be formally labelled as TallyPrime. With this capability, it is possible that the owner or an authorized user will be able to access all the reports and information from a remote location. With each forthcoming release subsequent to TallyPrime Release 3, additional capabilities will be delivered to cater to large business enterprises. The major functional areas in Tally are:
Order to Payment (Purchase Processes)
Simple (Cash Purchase) to Advanced Purchase Processes – including Ordering, Receipting, Rejections, Discounts, etc.
Order to Receipt (Sales Processes)
Simple (Cash Sales) to Advanced Sales Processes – including Orders Received, Delivery, Invoicing, Rejections and Receipting, POS Invoicing at Retail.
Material to Material (Manufacturing Processes)
Simple to Multi-step material transformations, Discrete and Process Industry cycles, Work in progress and valuations.
Simple to Complex Payrolls – including working with different Units of Measures (e.g., Job rates), Statutory compliances, their specifications and usage.
A complete set of reports for Business requirements are as follows:
Financial, Inventory, MIS & Analysis, Budgeting & Controls with advanced classification and filtering techniques, Group companies and multiple consolidation views, Cross-Period Reporting, Forex handling, Bank Reconciliation, etc. There is also an Export option to port data into other applications (e.g., Spreadsheets) for additional manipulation.
The Compliance Requirements and related configurations in TallyPrime are as follows, with regard to the implementation of:
- Direct Taxes: TDS/TCS, FBT
- Indirect Taxes: Excise, Service Tax, VAT, CST
Enabling Environment for Remote – Tally.NET Users
Tally Software Services (TSS) is responsible for the Remote Access Services. It allows:
- Remote Access – It is now possible for an authenticated user to access TallyPrime from any computer system.
- Tax Audit Tools – The CA community will now be able to deliver affordable services to client, addressing their Security and Privacy concerns.
Tally Definition Language
Tally Definition Language is the application development language of Tally. TDL has been developed to provide the user with the flexibility and power to extend the default capabilities of Tally, and integrate them with the external applications. TDL provides a development platform for the user. The entire User Interface of TallyPrime is built using TDL. TDL as a language, provides capabilities for Rapid Development, Rendering, Data Management and Integration.
Any TallyPrime user can learn TDL and develop extensions for Tally. The entire source code is available as a part of the Tally Development Environment, i.e., with our product Tally Developer.
Comparison with other Languages
Today, there are many languages in the world which are used to develop applications. These languages are developed keeping some specific areas of application in mind. Some languages are good for developing front-end applications, while others may be good for writing system programs. The various categories of languages available today are as follows:
Low Level Languages
Low level Languages are languages that can interact directly with the hardware. They comprise instructions which are either directly given in computer-understandable digital code or in a pseudo code. These languages require very sound knowledge in hardware. For example, Assembly language or any native machine language.
Middle Level Languages
Middle Level Languages consist of syntax, rules and features just like the high level languages. However, they can also implement low level languages as part of the code. For example, C, C++, etc.
High Level Languages
High level languages are very much like the English language. They are easy to learn, program and debug. High level programming languages are sometimes divided into two categories: Third Generation and Fourth Generation languages.
Third Generation Languages
Most High Level languages fall in the category of Third Generation Languages. Third Generation languages are procedural languages, i.e., the programmer specifies the sequence of execution and the computer strictly follows it. The execution starts from the first line of the code to the last line, taking care of all the control statements and loops used in the program.
Fourth Generation Languages
There is no clear-cut definition for the Fourth Generation Languages (4GL). Normally, the 4GL are high level languages which require significantly fewer instructions to accomplish a task. Thus a programmer is able to quickly develop and deploy the code. Most 4GL are non-procedural languages.
For example, some 4GL are used to retrieve, store and modify data in the database using a single line instruction, whereas other 4GL use report generators to generate complex reports. It is sufficient to specify headings and totals using the language, and the report is generated automatically. Certain 4GL can be used to specify the screen design, which will automatically be created.
On having understood the categorization of computer languages, TDL can be categorised as a Fourth Generation, High Level Language. The capabilities which TDL provides to the users is much more than what other 4GL languages provide. This may extend to meeting specific purposes like database management, report generation, screen design, etc.
TDL is a comprehensive 4G language which gives tremendous power in the hands of the programmer by providing data management, complex report generation and screen design capabilities, using only a few lines of code, leading to rapid development. Let us now analyse the features in detail, which help us in understanding and appreciating the capabilities provided by the development language of Tally, i.e., TDL – Tally Definition Language.
The TDL Program – At a Glance
Before we discuss the capabilities and features of TDL in detail, let us have a look at the basic TDL program. The following figure describes all the components in a TDL Program.
The description, usage and detailed explanation of each component will be taken up in the subsequent chapters.
TDL is a language based on definitions. It is possible to reuse the existing definitions and deploy them. This is a language meant for rapid development. It is possible to develop complex reports within minutes. The user can extend the default functionalities of the product by writing a code consisting of a few lines.
Multiple Output Capability
The same language can be used to send the output to multiple output devices and formats. Whenever an output is generated, it can be displayed on the screen, printed, transferred to a file in particular format, and finally mailed or transferred to a web-page using Http protocol. All this is made possible just by writing a single line of code. Just imagine the technology used to develop the platform that such a complex task is developed and implemented using only a few lines.
Data Management Capability
As discussed earlier, the data is stored and retrieved as objects. There are a few internal objects predefined by the platform. Using TDL, it is possible to create and manipulate information on these with ease. Suppose, an additional field is required by the user to store information as a part of the predefined object. This capability is also provided in TDL, i.e., by using TDL, the user can create a new field and store a value into it, which can be persisted in the TallyPrime database.
To meet the challenges of the 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 TallyPrime platform has a built-in capability of integrating data with other applications. The following are the different types of integrations possible in TallyPrime:
- TallyPrime to TallyPrime using Sync
- TallyPrime to external applications in various data formats
- External DB to TallyPrime using XML and SDF formats
- TallyPrime DB to external applications using ODBC
- External DB to TallyPrime using ODBC
A definition language provides the users with ‘Definitions’ that can be used to specify the task to be performed. The user can specify the task to be performed, but has no control over the sequence of events that occur while performing the specified task. The sequence of events is implicit to the language and cannot be changed by the user. TDL works on Named Definitions, which means that every definition should have a name and that name should be unique. TDL has User Interface Objects like Reports, Forms, Parts, Lines and Fields as definitions.
TDL can define Reports, Menus, Forms, and so on, but the Definitions will not have any relevance unless they are used. Definitions are deployed by use, not by existence.
TDL is based on concepts pertaining to Object Oriented Programming. This language has been created for reusability. Once a definition is created, it can be reused any number of times. Besides the reusing capability, the user can also add new features, along with the existing definitions.
TallyPrime has a singular view of all the TDL Definitions, which means that the TallyPrime executable reads TDL (user defined and default) as one program. On invoking TallyPrime, all the default TDL files of TDLServer.DLL will be loaded. The user TDLs will be subsequently loaded as specified in Tally.ini.
Most of our programming experience has been in dealing with a procedural language where we define a sequence of actions to define the sequence of events that take place. The entire control is with the programmer. The programmer is able to determine the start and end-point of the program. The programmer cannot control the sequence. All the sequences are implicit in the program. The programmer cannot write his/her own procedure. The platform provides a set of functions for the TDL programmer.
The programmer can only control as to what happens when a particular event takes place. During interaction, the user can select any sequence of actions. Based on his/her action, a particular segment of code gets executed.
TDL is a rich language, that refers to a list of functions, attributes, actions, etc., which are provided by the platform. It is possible to develop a complex report or modify the existing one within no time. Imagine how many lines of code would be required if a simple button were to be added using a traditional programming language.
Flexibility and Speed
The architecture of the software and the language provide extraordinary flexibility and speed. Speed in this regard refers to the speed of deployment. With TallyPrime, the deployment is extremely rapid.
TallyPrime is flexible enough to change its functionality based on the customer’s business requirements. Most of the times, the customer-specific requirements may seem like major functional changes that have to be done, but they may only be minor variations of the existing functionality, which can be done within no time.
The major functional areas of TallyPrime are purchase processes, sales processes, manufacturing processes, payroll, MIS, statutory compliance and TSS.
- TDL is the application development environment of TallyPrime.
- TDL is a Fourth Generation High-Level Language.
- TDL is not only a definition language but also a non-procedural, action-driven language.
Watch the following video to know more about Tally Technology:
You can watch the following video to know more about the language TDL.