If you mean Ship Date on a standard or back order (not quote) the short answer is Yes. In UDF Maint / SO Sales Order Hdr / rt-click / User Defined Scripts / Add,
I would create 2 entries, one for each of the events I'm aware of that could set / reset the Ship Date: Table Post-Read and Column Post-Validate of OrderType
sOrderType = """"
retVal = oBusObj.GetValue(""OrderType$"", sOrderType)
If sOrderType = ""S"" or sOrderType = ""B"" Then
retVal = oBusObj.SetValue(""ShipExpireDate$"", """")
End If
If you don't care it's a quote / Master Order and you're now dealing with Expire Date then just do the SetValue() line only. I would also create another script on Table Pre-Write to check if Ship Date was left blank when they clicked on Accept, in case that's important.
Make sure you back out of UDF Maint all the way until you get the Compile button and then click Compile. Also if you were in SO Entry, close out and re-open. Also if Allow External Access is off in Company Maint turn it on.
But if you meant the Invoice Due Date this whole time, then same idea but on SO Invoice Header your SetValue is on InvoiceDueDate$ and the events are:
Column Post-Validate of SalesOrderNo
Column Post-Validate of TermsCode