Eray

LOD_XML'de Hatası olmayanlar kayıda devam etsin

  Tiger/Logo Object Designer (LOD)

Merhaba herkese kolay gelsin , 


LOD üzerinden logo programına toplu olarak sayım eksiği-fazlası fişi atıyorum . Fişi atarken malzemelerimin bazılarında lot var , stok yeri var , kimisi ambar parametresine takılıyor vs vs . içeri bu kaydı atamıyorum. Benim istediğimde hata veren malzemeler içeri alınamasın tamam ancak hata vermeyen diğer malzemeleri içeriye aktarsın . Aktaramadıkları için bir hata mesajı vs döndürülebilir bir yere log tutulabilir ancak postu direkt iptal edip fişi içeriye aktarmıyor . 

Yardımlarınızı bekliyorum çok teşekkürler .

Kodum şöyle ; 

----------------------

objFire = Application.NewDataObject(1)
objFire.New()
objFire.DataFields.FieldByName("GROUP").Value =0
objFire.DataFields.FieldByName("TYPE").Value =51
objFire.DataFields.FieldByName("NUMBER").Value = "~"
objFire.DataFields.FieldByName("DATE").Value = "31.12.2018"
'objFire.DataFields.FieldByName("AUXIL_CODE").Value ="sasa"
objFire.DataFields.FieldByName("SOURCE_WH").Value =0
objFire.DataFields.FieldByName("PRODSTAT").Value =1
objFire.DataFields.FieldByName("CURRSEL_TOTALS").Value = 1
transactions_lines = objFire.DataFields.FieldByName("TRANSACTIONS").Lines

''

If transactions_lines.AppendLine() Then
transactions_lines[a].FieldByName("ITEM_CODE").Value =malzkod
transactions_lines[a].FieldByName("LINE_TYPE").Value = 0
transactions_lines[a].FieldByName("SOURCEINDEX").Value =ambar
' transactions_lines[i].FieldByName("LINE_NUMBER").Value = 1
transactions_lines[a].FieldByName("QUANTITY").Value = fiili
transactions_lines[a].FieldByName("PRICE").Value = 1
transactions_lines[a].FieldByName("UNIT_CODE").Value = birimkod

End if


next a

If Not objFire.Post() Then
if (objFire.ValidateErrors.Count > 0) then
tmpErrStr = "XML Hatası mevcut!"
Cntr = objFire.ValidateErrors.Count
For ilp = 0 To (Cntr - 1)
vID = objFire.ValidateErrors.Item[ilp].ID
Str(vID, strvID)
tmpErrStr = tmpErrStr + strvID + " , " + objFire.ValidateErrors.Item[ilp].Error
Next ilp
warn(tmpErrStr)
Else
tmpErrStr=""
tmpErrStr = "DB Hatası mevcut!"
ErrId = objFire.ErrorCode
Str(ErrId, strErr)
ErrDef = ""
ErrDef = objFire.DBErrorDesc
tmpErrStr = tmpErrStr + "Hata Kodu : " + strErr + " " + ErrDef
warn(tmpErrStr)
End if

Else


end if

------------------------------------

Saygılarımla..


xml lod post


NaciO

Tiger arayüzünde parametreler 3 seçenekli (işlemi durdur, uyarı ver ve işleme devam et, işleme devam et) olabiliyor. Ancak Logo Objects (veya LOD) tarafında sadece işleme devam et veya işlemi durdur seçenekleri üzerinden hareket ediyoruz. Sizin bahsettiğiniz, uyarı versin ancak işleme devam etsin şeklinde yol almasıdır. Bu, Logo Objects iş mantığının dışında.  Benzer şekilde fişin gönderildiği hali dışında aktarılması da (hatalı olanları göz ardı edilerek aktarılması) Logo Objectsin yapısına uygun değil. 


24/04/18 16:39

Cevap vermek için giriş yapmanız gerekmektedir.