How do we achieve our design principles? Let's start by looking at the two building blocks used in software (this parallels life):
•Masters: Masters are what we get when we ask 'with whom?' With whom do we do business? Our customers and suppliers. 'With what?' –As in what do we transact with –services & inventory. 'Using what?' – gives us taxes, units of measure, currency, batches. All these become 'masters'.
•Transactions: What do we do with masters? We transact – sales, purchases, receipts, payments - these are the 'transactions' records of the business activities we perform.
|
|
|
When transactions are recorded, they create links –as in making a payment for purchase #72. The purchase reference #72 links these two documents, so we can get to know the payment status for that document, and know for which documents we have made payment. These links are called 'link masters'.
Neither masters nor transactions are dictated by the software product –they are pre-defined by business practices. What must be captured, what is mandatory and that business transactions need to be recorded are not subject to 'design' ('how' these are done, is another matter!) What is unique is in the way these interactions are recorded, managed and reported.
The 'magic' of Tally is in the Link Masters where data of which transaction is linked to which document is maintained. The transactions themselves do not carry this information. Effectively, each document is an 'island', making it easy to alter, delete or insert at will –without the need to check if other transactions it refers to exist at any time. This design permits all the flexibility required, supports incremental implementation and permits transactions to be recorded in any order (pay for purchase #72 first, then enter purchase #72).
While generating reports and totals (any totals) the above approach requires immense computing power to 'stitch' transactions together. We have developed proprietary, extremely high performance data storage & retrieval mechanisms to deliver these at very usable speeds. This architecture also allows you to mark transactions as 'optional', perform scenarios, synchronise data with branches, potentially recover from system errors, correct any errors in any transaction - anytime, report on ‘group’ companies, and so many more capabilities unique to Tally.ERP 9.
|