hi elise,
table buffer also is very useful when you want to do "find/for each" in the same looping for the "for each".
example:
/*======= error 's statement =========*/
for each tableA.
find first tableA.
end.
/*==============================*/
/*======= Correct 's statement =========*/
define buffer bfTableA for tableA.
for each tableA.
find first bftableA.
end.
/*==============================*/
because while doing for each, and u do another 'find/for each' statement inside the for each, the pointer dont know which row record is for which "for each/find".