Are you wanting to update your FSSODet record or do you just need to display the current status value from the related SOOrder record at that moment in time?
I suspect that you want to display it and not store it because when the status of the order changes your custom field value will be out of sync.
I think you can change the declaration of your UsrSoStatus DAC field so that it pulls the status of the related SOOrder record directly without storing the value.
Using the PXDBScalar attribute on a field will allow you to essentially turn that field into a sub-select along the lines of (this isn’t exact - only for demonstration purposes):
(select Status from SOOrder where SOOrder.OrderNbr=FSSODet.UsrSONumber) UsrSoStatus
So when this record is selected or used in a GI/Report, the current SOOrder.Status value appears in your UsrSoStatus field with no further effort on your behalf.
This example from the Acumatica help shows a Vendor Name field that is showing the name of the vendor whose ID is in the RQRequestLine DAC. (Note that this field would be in the RQRequestLine DAC and also note that the field type is PXString and not PXDBString as you have no need to store the vendor name, you’re just pulling the existing name as it is at that point in time).
[PXString(50, IsUnicode = true)]
[PXDBScalar(typeof(
Search<Vendor.acctName,
Where<Vendor.bAccountID, Equal<RQRequestLine.vendorID>>>))]
public virtual string VendorName { get; set; }