Hi Eason,
I had a check and it gives something correct when you have the control on MEMORY_COMPLETE flag.
Usually this flag is set as per new functionality in BAPI_PO_CREATE1.
You can have a control based on set flag for MEMORY_COMPLETE.
So better ask your ABAPER not set the flag MEMORY_COMPLETE to "X" when there are no errors and PO can be saved successfully.
Kindly refer the below OSS Note, which explains how to set the PO on hold and can be set the PO saved sucessfully with setting into Hold option.
354771 - Enjoy BAPI: Holding of purchase orders
Rgds,