Procedural-Debugging Related Actions
Start Profile
This action is used to start profiling. The count, time taken and other useful information of every function, collection, etc. gathered along with expressions within the report, are profiled in memory.
Syntax
Start Profile
Example:
[Button : Start Profiling]
Key : Alt + S
Action : Start Profile
Dump Debug
This action is used to dump all debugging information to the file. It also clears the diagnosis data from the memory, once dumped.
Syntax
Dump Debug: <File Name>
Where,
<File Name> is the name of the file to which the information has to be written.
Example
[Button : Dump Debugging]
Key : Alt + E
Action : Dump Debug : “Debugged @ ” + @@SystemCurrentTime
Stop Debug
This action is used to stop debugging. If the file name is passed, then the information is also dumped into the specified file.
Syntax
Stop Debug [: <File Name>]
Where,
<File Name> is the name of the file to which the information has to be written.
Example
[Button: Stop Debugging]
Key : Alt + O
Action : Stop Debug : “Debugged @ ” + @@SystemCurrentTime
Dump Profile
This action is used to dump all the profiled information to the file. It also clears the memory after dumping the information.
Syntax
Dump Profile [: <File Name>[: <Logical Value>]]
Where,
<File Name> is the name of the file to which the information has to be written. In the absence of the ‘File Name’ Parameter, the default file updated will be tdlprof.log
<Logical Value> if set to YES, the ‘Dump Profile’ action also includes zero time-taking artefacts. If it is enabled, the action is similar to calculator pane command DumpZ, else it is similar to Dump.
Example
[Button: Dump Profiling]
Key : Alt + R
Action : Dump Profile : “Profiled @ ” + @@SystemCurrentTime
Stop Profile
This action is used to stop profiling. If the Optional parameter ‘File Name’ is passed, then information is also dumped into the file, without requiring the action Dump Profile.
Syntax
Stop Profile [:<File Name>]
Where,
<File Name> is the name of the file to which the information has to be written.
Example
[Button : Stop Profiling]
Key : Alt + T
Action : Stop Profile
Start Recording
This action is used to start recording every key entered in the memory, with the specified macro name. In the absence of optional parameter Macro Name, default name assumed will be ‘Macro’.
Syntax
Start Recording[ :<Macro Name>]
Where,
<Macro Name> is the name of the macro to be recorded in memory.
Example
[Button: Start Recording]
Title : “Start”
Key : Alt + C
Action : Start Recording : “BS View”
Pause Recording
This action pauses the recording, which can be resumed further. For instance, while recording multiple Vouchers, we might have to run through the Report to check the Number of vouchers, Amount, etc., and then resume recording the Vouchers.
Syntax
Pause Recording
Example
[Button: Pause Recording]
Title : “Pause”
Key : Alt + U
Action : Pause Recording
Resume Recording
This action resumes the paused recording.
Syntax
Resume Recording
Example
[Button : Resume Recording]
Title : “Resume”
Key : Alt + M
Action : Resume Recording
Dump Recording
This action dumps all the recordings to a file with the given separator. Each recording is dumped with its name and keys. This also clears the keys in memory.
The Action ‘Dump Recording’ will accept 2 optional parameters, viz. File Name and Separator.
- If the File Name is left unspecified, then by default, the Action would dump the recording to the file Macros.log.
- If the Separator is left unspecified, then by default, the system would consider Tilde (~) as the default separator.
Syntax
Dump Recording [: <File Name> [: <Separator between keys>]]
Where,
<File Name> is the name of the file where macro and keys will be recorded.
<Separator between keys> is the separator used to differentiate the macro name from the keys.
Example
[Button : Dump Recording]
Title : “Dump”
Key : Alt + U
Action : Dump Recording : “BSView.txt” : “-”
On clicking the Button ‘Dump Recording’, a file BSView.txt is created in Tally Application Folder.
Stop Recording
This action stops the recording.
Syntax
Stop Recording
Example
[Button : Stop Recording]
Title : ” Stop”
Key : Alt + N
Action : Stop Recording
The recordings once dumped in a file against a name using the above actions, can be replayed by reading the file using File I/O approach and Triggering the keys in a loop using the Action ‘Trigger Key’, which will be covered ahead.
LOG
During expression evaluation, intermediated values of the expression can be passed to calculator window and a log file ‘ tdlfunc.log’ insid e the application director y . This is very much helpful for debugging the expression. By default, logging is enabled inside the function .
Syntax
LOG : < Expression>
Where,
< Expression > is the expression whose value needs to be passed to the calculator window.
Example
While finding the factorial of a number , intermediated values are outputted to the ‘Calculator’ win d ow using LOG action
[Function : FactorialOf]
Parameter : InputNumber : Number
Returns : Number
Variable : Counter : Number Variable : Factorial : Number
1 : SET : Counter : 1
2 : SET : Factor i al : 1
3 : WHILE : ##Counter <= ##I n putNumber
4 : SET : Factori a l : ##Factorial * # # Counter
5 : SET : Counter : ##Counter + 1
5a : LOG : # # Factorial
6 : ENDWHI L E
7 : RETURN : ##Factorial
Log Object
The action Log Object has been introduced as a Global action. It accepts a filename as the parameter. In this file, the context object, its method and collection are logged.
Syntax
Log Object [:<pathfilename> [:<Overwrite Flag>]]
Where,
<path/filename> is optional. It accepts the name of the file, along with the path in which the log is created. If no filename is specified, the contents of the object are logged in “TDLfunc.log” when logging is disabled, otherwise, it logs into the Calculator pane.
<Overwrite Flag> is used to specify whether the contents should be appended or overwritten. The default value is NO, which appends the content in the file. If set to YES, the file is overwritten.
Example
[Function : FuncLedExp]
|
Object : Ledger
|
10 : Log Object : LedgerObj.txt
Log Target
The action Log Target is a function-specific action. It accepts a filename as a parameter. In this file, the log of the object, its method and collection are created for the target object.
Syntax
Log Target [:<pathfilename> [:<Overwrite Flag>]]
Where,
<path/filename> is optional. It accepts the name of the file along with the path in which the log is created. If no filename is specified, the contents of the object are logged in “TDLfunc.log” when logging is disabled, otherwise, it logs into the Calculator pane.
<Overwrite Flag> is used to specify whether the contents should be appended or overwritten. The default value is NO, which appends the content in the file. If set to YES, the file is overwritten.
Example
[Function : FuncLed Exp]
|
05 : Set Target
|
10 : Log Target : LedgerObj.txt
Delete Target
Action Delete Target is introduced to delete a primary object from the company.
Syntax
Delete Target
Example
[Function: Emp Led Deletion]
00 : Walk Collection : Empty Ledgers
10 : Set Target
20 : Delete Target
30 : End Walk
In the example, the action Delete Target is invoked. Delete Target then walks the collection Empty Ledgers , sets the current ledger object to target context, and deletes the ledger.
Masters can be deleted only when empty. For example, if there is a transaction under the master that is being deleted, then the master object cannot be deleted.
SET LOG ON
While debugging a Function, sometimes it is required to conditionally Log the values of an expression. If logging is stopped, then logging can be re-started based on the condition Action SET LOG ON. This Action does not require any parameter.
Syntax
SET LOG ON
SET LOG OFF
This Action is used in conjunction with SET LOG ON. Log can be stopped by the Action SET LOG OFF. This Action does not require any parameter.
Syntax
SET LOG OFF
SET FILE LOG ON
This Action is similar to SET LOG ON. SET FILE LOG ON is used to conditionally Log the values of an expression to log file ‘tdlfunc.log’. This Action does not require any parameter.
Syntax
SET FILE LOG ON
SET FILE LOG OFF
This action is used in conjunction with SET FILE LOG ON . Logging the file ‘tdlfunc.log’ can be stopped by the Action SET LOG OFF. This Action does not require any parameter.
Syntax
SET FILE LOG OFF