Yes, use set field instead of Replace Field Contents. Replace Field Contents is intended to do exactly what you have discovered, it updates a specified field for every record in the found set. Set Field will only modify the current record.
Got it. I am using Set Field to update individual line items as received. But, to have a script mark the entire purchase order as received I guess I need the script to loop using set field on each line item. Just not sure how I would go about that. Can you provide me a little direction to get started?
Thanks for your help.
"entire purchase order" could be the purchase order record or the individual line items. I misunderstood you to be wanting to update the purchase order record rather than the line items.
Replace Field contents is a way to do this, but you need to generate a found set of your portal records for just the current purchase order before you use it.
Here's one way to do it: (I am not opening the starter solution, so you may need to substitute the actual field names for what I am using.)
Set Variable [$POnumber ; value: PurchaserOders::POnumber]
Go To Layout [//select layout for purchase order line items table]
Enter Find Mode  // clear the pause
Set Field [LineItems::PoNumber ; $POnumber ]
Set Error capure [on]
Perform Find 
Replace Field Contents [ no dialog ;//specify the line item field and value you want to put in each line item record]
Go To Layout [original layout]
Thanks. Worked like a charm. Sorry for the slow response. Got shifted over to another project for a few weeks.