Directory Integrator, Version 7.0
One of the most powerful features of Tivoli Directory Integrator is its built-in AssemblyLine Debugger that allows you to walk through the execution of your AL, viewing and even modifying data in-flight.
Let's step through your first AssemblyLine by clicking the Start Debug session button.

Instead of the standard Run window, you will find yourself in the AL debug window.

Along the bottom is the log output which is identical to what you saw in the standard Run window. The rest of this window is divided into two parts: the AssemblyLine Components list, and Watch List.
The AssemblyLine Components area shows your AL components along with the Hooks that let you influence the underlying automated workflows of Tivoli Directory Integrator. Each Hook is a script container that is executed at a specific point in the built-in workflow. The Show disabled hooks checkbox is used to display all Hooks, including those that are not currently enabled, allowing you to step through these as well. Leave this checkbox open for now. Next to each item in this tree-view is a Breakpoint checkbox that you can use to signal where execution should stop.
The Watch List displays the value of Attributes, script variables and Script expressions of your choosing. By default, this list contains the work Entry, and when available, the conn Entry as well. There is also a folder labeled 'Global variables' that contains all the script variables registered in the Script Engine of the running AssemblyLine.
If you now raise your attention to just above the AssemblyLine Components label, you'll see six buttons.

Use this button to step into the script of an Attribute Map assignment, SC or Hook.
Start the execution of your AssemblyLine by pressing the Step into button – the first one on the left. You should see 'Read_CSV_File' highlighted1. If you now press Step into then the CE will walk you through the mapping of each Attribute, starting with 'First'. Using the Step into button will even walk you through the Assignment script, line by line.

Notice how a script window opens up to allow you to step through each line of JavaScript as it is executed. This is true for Attribute Maps, Script Components (SCs) and Hooks, and even scripted Connectors, Functions and Parsers.
Now set a check in the box next to the SC labeled 'Write to log' – the first one under your IF branch – and then press the Continue button.

The execution of your AL will proceed until the IF branch evaluates to true and processing reaches your Breakpoint, at which time a Script Quick Editor window appears for stepping through your script and control is returned to you. There is a tab labeled 'Breakpoint Condition' with a script editor where you can write a snippet of script that evaluates to true or false (like a branch Condition). If you enter a Conditional expression here then this Breakpoint will only be active when the Condition is true2. You will do this later in the tutorial exercise.
Whenever you are stepping through or viewing script in the Script Quick Editor, you can double-click to the left of any line of script in order to set a Breakpoint there.

Another powerful debugging tool is the Script Commandline at the top of the Debugger screen, which allows you to interactively enter and execute script. Try this out while your AL is paused at the 'Write to log' Script component by first setting your cursor in the text field to the right of the Step buttons, entering the script snippet work.First and then pressing the ENTER key on your keyboard. Remember that the names of Attributes are case-sensitive when using this shorthand notation.

Pressing the ENTER key causes your script snippet to be sent to the Server where it is executed in the context of your running AssemblyLine. Results from this statement are then displayed in the Log Output window. In your case the result was to return the Work Entry Attribute named 'First' with the value 'Roger'3.
The Script Commandline also lets you modify data, for example using the work.setAttribute() method or by directly assigning values to script variables:
work.First = "Roger is incomplete";
From this interactive script area you can also invoke Script functions, load jar files, instantiate objects and call Java library functions – in short, anything that you can do from script from within your AssemblyLine. The Script Commandline also provides a history drop-down so that you can browse and re-use previously entered snippets.

Finally, there is a button labeled Edit Watch List at the top of the 'Watch List' display for adding items to your Watch List. The Watch List is a series of JavaScript variables and expressions that are automatically updated in the display each time the Debugger pauses to give you control.

It is highly recommended that you spend some time to familiarize yourself with the AssemblyLine Debugger. Not only does it provide unique insight into how your AL operates, including all the built-in workflows provided by the Server kernel, but it will help you validate your own implementation and assumptions about your data.