You will notice when you run your procedure that some of the ship dates are not defined. Some of these Orders apparently have been on hold for a very long time! Let's construct a statement to branch in the code depending on whether the ShipDate field is defined or not. ABL, like most languages, has an IF-THEN construct for such decision points. It can also have an ELSE branch:
IF condition THEN { block | statement }[ ELSE { block | statement }]
The condition is any expression that evaluates to TRUE or FALSE. Following the THEN keyword, you can place a single ABL statement or a whole set of statements that are all to be executed if the condition is TRUE. The way to represent a block that simply groups a series of statements together that are all executed together is a DO-END block:
IF condition THEN DO:
statement ...
END.
If you include the ELSE keyword followed by a statement or a block of statements, that branch is taken if the condition evaluates to FALSE.