A suggestion: Add a perform script step at the head of script B to run script A. You would also need to build in a tripwire to halt the rest of script B if script A throws up issues to be resolved. This should have the following effects:
1. If the user has already executed script A and dealt with any data issues it points them to, then running script A again will have negligible effect.
2. If they have triggered script B first and there are data problems unresolved, the balance of script B will not run.
3. Whichever way users go about navigating the layout, this should guarantee that script A is run and cleared before script B does its work.
Thank you coherentkris and Jeremy Brown for help! I worked my way through Solent's excellent trigger summary.
This makes things clearer.