It depends greatly on your flow. Consider what part of the flow should only happen on one machine at a time. Based on what you describe, I'm guessing that you'd want to use an environment lock after 'Get Next Item' > 'Got Item?' > 'No' path and just before End.
Remember that it's not enough to check for Pending items only. You should also verify there are no locked items before generating the report. This is the reason that parent/child queues are normally used for this requirement. The Parent item is the one that drives the report as its overall status is only updated after all the child items have been completed.
You'll also need to decide what to do if there are exception items. Should the one bot still generate a report if there are some exception items that have not been retried/completed or should it go into a loop where it waits for you to force retry items that could not be handled by the bot on its own? I'd be interested in what other people's solutions are to this. In my working with parent/child queues, I've found it to be a bit of a headache because you have to account for so many possibilities.
For now, just try doing this on your Main Page...
Start
Start Up (subpage)
Get Next Item
Got Item?
Yes: Main Loop
No: Generate Report (subpage)
On the generate report subpage, have some logic that uses the Work Queues action 'Get Report Data' to get worked items, pending items, locked items, etc. as a verification that work is done.
Dave Morris, 3Ci at Southern Company