Can a change be incorporated even when the PO item is blocked and when the change needs to be made by Function Module (FM) BAPI_PO_CHANGE?
Here are the steps of Issue
Create PO (for example, PO number 4500017438; item 10; quantity 10) by T-code ME21N or FM BAPI_PO_CREATE1.
Block the PO item (for example, item 10) by T-code ME22N or FM BAPI_PO_CHANGE.
Run T-code SE37 and input function module BAPI_PO_CHANGE.
Go to menu and select "Function Module" -> "Test" -> "Test sequences".
Input BAPI_PO_CHANGE and BAPI_TRANSACTION_COMMIT, then press "execute" button.
Fill the import parameters including the following ones to change the blocked item (for example, quantiry) :
POITEM-QUANTITY 20
POITEMX-QUANTITY X
POITEM-DELETE_IND S
POITEMX-DELETE_IND X
Execute BAPI_PO_CHANGE and BAPI_TRANSACTION_COMMIT.
Run T-code ME23N to display the PO.
The quantity has been changed (for example, from 10 to 20).
It is possible to unblock the item first to make the changes and then block the item again in T-code ME22N. It is not possible in BAPI_PO_CHANGE in the same way.
So this is intended design that BAPI_PO_CHANGE would allow directly changes to blocked PO items. It is system standard behavior.