Suren, If the input is SO and line item, it makes sense to me to update the PO date(if its different from VBEP-EDATU) but why/how do you have to update the schedule line date? What is the input for the same?
If you are referring to a scenario where there are multiple schedule lines and you want to update the line where your qty is confirmed (assuming the entire qty is confirmed on one single date), then you need to pick up all the schedule lines and sort the same by POSNR ascending and ETENR descending.
Your sequence is correct. SO->Schedule Line->PR->PO
V.