PointsWell wrote
Test it first with a process that doesn't call a program, for example set a timestamp field or set a flag. It definitely works. The issue may lie with the EXECUTE PROGRAM.
I totally agree with PointWell that this works.
Have you looked at the AwareIM main.log?
To see how much DIRT the process 1 is actually finding, look for lines something like
Executing action FIND DIRT where DIRT.PID > 0
Found 25 objects
To verify each record is being passed to Process 2, look for a line something like
Executing process UpdateDate with parameters: DIRT:1
The number at the end is the DIRT.ID of the record being passed to the process and there should be a line like this for each time process 2 is called.