Update UDT from CI_Item

SOLVED

After reading a few post about updating UDT's from scripts I am wondering if my events are wrong or do I need to SetKey before SetValue?  In the debug I couldn't get any return values, so I am guessing my events are wrong, I've tried a PRE-WRITE and a POST-READ on the CI_Item. 

If oSession.CompanyCode = "ZZZ" then

sIC = ""
sUK = ""
sVENDOR=""
oUDT=0

retVal = oBusObj.GetValue("ItemCode$", sIC)
r=oScript.DebugPrint("IC: " & sIC)
retVal = oBusObj.GetValue("UDF_UNIQUEKEY$", sUK)
r=oScript.DebugPrint("UK: " & sUK)
retVal = oBusObj.GetValue("PrimaryVendorNo$", sVENDOR)
r=oScript.DebugPrint("VENDOR " & sVENDOR)

IF sVENDOR = "0001904" then

Set oUDT = oSession.AsObject(oSession.GetObject("CM_UDTMaint_bus","PO_UDT_ROG_IMPORT_ITEM_MAPPING"))

retVal = oUDT.SetValue("UDF_SANMAR_ITEMCODE$",sUK)
retVal = oUDT.SetValue("UDF_SAGE_ITEMCODE$",sIC)
retVal = oUDT.Write()

End If
End IfIf oSession.CompanyCode = "ZZZ" then

sIC = ""
sUK = ""
sVENDOR=""
oUDT=0

retVal = oBusObj.GetValue("ItemCode$", sIC)
r=oScript.DebugPrint("IC: " & sIC)
retVal = oBusObj.GetValue("UDF_UNIQUEKEY$", sUK)
r=oScript.DebugPrint("UK: " & sUK)
retVal = oBusObj.GetValue("PrimaryVendorNo$", sVENDOR)
r=oScript.DebugPrint("VENDOR " & sVENDOR)

IF sVENDOR = "0001904" then

Set oUDT = oSession.AsObject(oSession.GetObject("CM_UDTMaint_bus","PO_UDT_ROG_IMPORT_ITEM_MAPPING"))

retVal = oUDT.SetValue("UDF_SANMAR_ITEMCODE$",sUK)
retVal = oUDT.SetValue("UDF_SAGE_ITEMCODE$",sIC)
retVal = oUDT.Write()

End If
End If

  • +1 in reply to jland47
    verified answer

    If oSession.CompanyCode = "ZZZ" then
    
    retVal= 0	
    oUDT= 0
    	
    Set oUDT = oSession.AsObject(oSession.GetObject("CM_UDTMaint_bus","PO_UDT_ROG_IMPORT_ITEM_MAPPING"))
    
    sVENDOR=""
    sIC = ""
    sUK = ""
    
    retVal = oBusObj.GetValue("PrimaryVendorNo$", sVENDOR)
    r=oScript.DebugPrint("VENDOR " & sVENDOR)
    
    	If sVENDOR = "0001904" then
    
    	retVal = oBusObj.GetValue("ItemCode$", sIC)
    	r=oScript.DebugPrint("IC: " & sIC)
    	retVal = oBusObj.GetValue("UDF_UNIQUEKEY$", sUK)
    	r=oScript.DebugPrint("UK: " & sUK)
    
    	retVal = oUDT.SetKeyValue("UDF_SANMAR_ITEMCODE$", sUK)
    	retVal = oUDT.SetKey()
    
    		If retVal = 2 then
    				
    		 retVal = oUDT.SetValue("UDF_SAGE_ITEMCODE$",sIC)
    
    		 retVal = oUDT.Write()
    
    			
    		End If
    		
    	End If
    End If