The debugger steps through running a template. You can stop on tags as they are applied to see what action they take and why.
This is template debugger that can help you determine why your template is not generating the report you expect. It works by walking through tag by tag as each tag is processed in the template. You can also set breakpoints and run the template to that breakpoint.
The debugger moves through a set of modes as it processes the template:
- The template is loaded. Nothing has occurred yet.
- The template is parsed. This is when the tags are found in the template.
- The data source is initialized and loaded.
- The template tags are processed by the data source.
- The report is complete.
Modes 2 & 4 can be stepped through tag by tag.
Modes 2, 3, & 4 will repeat each time an import tag is processed and the import is a template.
In mode 4 you can set breakpoints on tags and then run to that breakpoint.
Important Concept: When an import tag is importing a template, that template is inserted into the main template in memory. So an import tag will then have to parse that template, insert the parsed template into the main template, and then start processing tags in that template as that is the next item now in the main template.
- Play/Continue - run until the next mode or until a breakpoint is hit, whichever comes first.
- Pause - stop executing on the next tag.
- Stop - stop processing the template.
- Step - run to the next tag or mode change.
- Add breakpoint - set a breakpoint on the selected tag.
- Delete breakpoint - delete the breakpoint on the selected tag.
- Delete all breakpoints - delete all breakpoints.
- Windows - select the wind clicked on.
The Three Main Windows
These are always in the main part of the debugger. Some will be blank when they have nothing to display in that mode.
- Tag Tree - the tags in the template so far.
- Template - the template as it is parsed. When import tags are processed this will grow to include the imported template.
- Report - the generated report. As each tag is processed, this will grow.
- Datasource - the properties of the data source presently being processed.
- Exception - if you hit an exception, this will display the exception properties.
- ForEach Stack - if you are presently inside a/several forEach loop(s), this will list the forEach tags.
- Import Stack - if you are presently inside a/several import tag(s), this will list the imported file(s).
- Properties - when you are on a tag this will list all of the tag's properties.
- Query Stack - this will list all query tags processed already.
- Variables and Sets - this will list all variables and set tag values processed.