I think it may be the same approach (or very similar) to what @gpayne is describing… but I did some combined barcode parsing in “Issue Material” if this approach might help.
The key is giving Epicor time to make calls in the background in between each parsing. You enter a job number… Epicor needs time to load the list of assemblies for that job. You enter the assembly number… Epicor needs time to load the list of operations for that assembly.