Sales Order lines Promis date - getting line key is read only message.

SOLVED

Hi Forum,

I've been trying to update Standard Sales Order line promise date from Master Order Lines with no luck.

I am getting The Promised date from the last line in the Master Order updated only, all lines on Standard order with same date.

Here is the script that I am using.

'Init VARs
newWhse = value : sItemCode = "" : sItemType = ""

SONum = "" : PONum = "": MSONum = "": retVal = 0
cust_mkt = ""
custno = ""
retVal = 0
itemtype = 0
promisedate = ""
lpromisedate = ""
lnpromisedate = ""
sMasterOrderNum = ""

sCompany = oSession.CompanyCode

if sCompany = "TST" then

retVal = oBusObj.GetValue("MasterRepeatingOrderNo$", sMasterOrderNum)

if sMasterOrderNum <> "" then


if oBusObj.EditState = 1 then
' EditState 0= not in memory, 1= Existing, 2= New

'Init VARs
sItemCode = "" : sItemType = "" : sMlineKey = "" :: sPromiseDate = "" : sDiv = ""

'If an existing sales order and not during update
If oBusObj.EditState = 1 and oSession.Updating = 0 Then
'Set oLines = oHeaderObj.AsObject(oHeaderObj.Lines)
Set oLines = oBusObj.AsObject(oBusObj.Lines)

Set oMaster = oSession.AsObject(oSession.GetObject("SO_SalesOrder_bus"))
'Set oMasterLines = oSession.AsObject(oSession.GetObject("SO_SalesOrderDetail_bus"))
Set oMasterLines = oMaster.AsObject(oMaster.Lines)

retVal = oMaster.SetKeyValue("SalesOrderNo$", sMasterOrderNum)
retVal = oMaster.SetKey()

sSetValueError = oMaster.LastErrorMsg
'retMsg = oSession.AsObject(oSession.UI).MessageBox("Error Message" ,"SetValueretVal: " & retVal & " /SetValueError: " & sSetValueError) ==> Got message Line Key is read only

retVal = oLines.MoveFirst()

'Loop through all the lines and choose regular inventory item lines only
Do Until CBool(oLines.EOF)
retVal = oLines.GetValue("ItemCode$", sItemCode)
retVal = oLines.GetValue("ItemType$", sItemType)
'retVal = oBusObj.GetValue("MasterRepeatingOrderNo$", sMasterOrderNum)

sMsg=" Master Order Num : ..." & sMasterOrderNum
'retVal = oSession.AsObject(oSession.UI).MessageBox("",sMsg)

retVal = oLines.GetValue("MasterOrderLineKey$", sMlineKey)

retVal = oMasterLines.SetKeyValue("SalesOrderNo$", sMasterOrderNum)
retVal = oMasterLines.SetKeyValue("LineKey$", sMlineKey)
retVal = oMasterLines.Find()

sMsg=" Master Order Key ..." & sMasterOrderNum & "-" & sMlineKey
'retVal = oSession.AsObject(oSession.UI).MessageBox("",sMsg)

retVal = oMasterLines.GetValue("PromiseDate$", sPromiseDate)
sMsg=" Promised Date : ..." & sPromiseDate
'retVal = oSession.AsObject(oSession.UI).MessageBox("",sMsg)

If sItemType = "1" Then
retVal = oLines.SetValue("PromiseDate$", sPromiseDate)
retVal = oLines.Write()
End If

retVal = oLines.MoveNext()
Loop

End If
End if
End if
End if

Any suggestions?