Script to update a Date UDF

SOLVED

Hello,

I am a bit new to scripting on Sage and would like some assistance if anyone is willing. I am writing a script to update a UDF date field based on any change on the specifications Tab in Item Maintenance. I have attached my script below. I am getting no errors it just won't update. Assistance would be most appreciated.

'Initialize vars
'This script is to update the "UDF_Last_Update on Tab 8 of Item Maintenance based on a change on the tab.


sECCN = ""
nUNSPSC = 0
nEDP = 0
sNIGP = ""
nNSN = 0
sMILSPEC = ""
sMANUFAC = ""
sMODELNO = ""
sBRAND = ""
sPREFCRIT = ""
sPRODUCER = ""
sNETCOST = ""
sNAFTA = ""
sMEDICALDEVICENO = ""
sNDC = ""
sNDC2 = ""
sNDC3 = ""
sHTSUSA = ""
sHTSMEX = ""
sHTSCAN = ""
sCOO = ""
sCOO2 = ""
sCOO3 = ""
nEDEPTH = 0
nEWIDTH = 0
nHEIGHT = 0
nEWGT = 0
nPACKQTY = 0
nCDEPTH = 0
nCWIDTH = 0
nCHEIGHT = 0
nCWGT = 0
nCASEQTY = 0
nPDEPTH = 0
nPWIDTH = 0
nPHEIGHT = 0
nPWGT = 0
nPALLETQTY = 0
nPLTDEPTH = 0
nPLTWIDTH = 0
nPLTHEIGHT = 0
nPLTWGT = 0
sPACKTYPE = ""
sPACKSIZE = ""
nTI = 0
nHI = 0
sHZMTDAN = ""
sHZMTCLASS = ""
sHZMTPG = ""
sHZMTIG = ""
sHZMTUNNA = ""
sHZMTPSN = ""
sGGUPCA = ""
sUPCCASE = ""
sUPCPACK = ""
sUPCPLT = ""
sORMD = ""
sSDS = ""
sEXPDATE = ""
sGREEN = ""
sMADEUSA = ""
sFREIGHTCLA = ""
sNOOFSCREEN = ""
sLASTUPDATED = ""
sSSIG = ""
sGASKET = ""
sNewDate = ""
sDate = FormatDateTime(Now, vbGeneralDate)

retVal = oBusObj.GetValue("UDF_ECCN$", sECCN)
retVal = oBusObj.GetValue("UDF_UNSPSC", nUNSPSC)
retVal = oBusObj.GetValue("UDF_EDP_NUMBER", nEDP)
retVal = oBusObj.GetValue("UDF_NIGP_CODE$", sNIGP)
retVal = oBusObj.GetValue("UDF_NSN", nNSN)
retVal = oBusObj.GetValue("UDF_MIL_SPEC_NUMBER$", sMILSPEC)
retVal = oBusObj.GetValue("UDF_MANUFACTURER_NAME$", sMANUFAC)
retVal = oBusObj.GetValue("UDF_MFR_MODEL_NO$", sMODELNO)
retVal = oBusObj.GetValue("UDF_BRAND$", sBRAND)
retVal = oBusObj.GetValue("UDF_PREF_CRITERIA$", sPREFCRIT)
retVal = oBusObj.GetValue("UDF_PRODUCER$", sPRODUCER)
retVal = oBusObj.GetValue("UDF_NET_COST$", sNETCOST)
retVal = oBusObj.GetValue("UDF_NAFTA_QUALIFY$", sNAFTA)
retVal = oBusObj.GetValue("UDF_MEDICAL_DEVICE_NO$", sMEDICALDEVICENO)
retVal = oBusObj.GetValue("UDF_NDC_NO$", sNDC)
retVal = oBusObj.GetValue("UDF_NDC_NO_2$", sNDC2)
retVal = oBusObj.GetValue("UDF_NDC_NO_3$", sNDC3)
retVal = oBusObj.GetValue("UDF_HTS_CODE_USA$", sHTSUSA)
retVal = oBusObj.GetValue("UDF_HTS_CODE_MEXICO$", sHTSMEX)
retVal = oBusObj.GetValue("UDF_HTS_CODE_CANADA$", sHTSCAN)
retVal = oBusObj.GetValue("UDF_COUNTRY_OF_ORIGIN$", sCOO)
retVal = oBusObj.GetValue("UDF_COUNTRY_OF_ORIGIN_2$", sCOO2)
retVal = oBusObj.GetValue("UDF_COUNTRY_OF_ORIGIN_3$", sCOO3)
retVal = oBusObj.GetValue("UDF_E_DEPTH", nEDEPTH)
retVal = oBusObj.GetValue("UDF_E_WIDTH", nEWIDTH)
retVal = oBusObj.GetValue("UDF_E_HEIGHT", nHEIGHT)
retVal = oBusObj.GetValue("UDF_E_WEIGHT", nEWGT)
retVal = oBusObj.GetValue("UDF_PACKAGE_QTY", nPACKQTY)
retVal = oBusObj.GetValue("UDF_C_DEPTH", nCDEPTH)
retVal = oBusObj.GetValue("UDF_C_WIDTH", nCWIDTH)
retVal = oBusObj.GetValue("UDF_C_HEIGHT", nCHEIGHT)
retVal = oBusObj.GetValue("UDF_C_WEIGHT", nCWGT)
retVal = oBusObj.GetValue("UDF_CASE_QUANTITY", nCASEQTY)
retVal = oBusObj.GetValue("UDF_P_DEPTH", nPDEPTH)
retVal = oBusObj.GetValue("UDF_P_WIDTH", nPWIDTH)
retVal = oBusObj.GetValue("UDF_P_HEIGHT", nPHEIGHT)
retVal = oBusObj.GetValue("UDF_P_WEIGHT", nPWGT)
retVal = oBusObj.GetValue("UDF_PALLET_QTY", nPALLETQTY)
retVal = oBusObj.GetValue("UDF_PLT_DEPTH", nPLTDEPTH)
retVal = oBusObj.GetValue("UDF_PLT_WIDTH", nPLTWIDTH)
retVal = oBusObj.GetValue("UDF_PLT_HEIGHT", nPLTHEIGHT)
retVal = oBusObj.GetValue("UDF_PLT_WEIGHT", nPLTWGT)
retVal = oBusObj.GetValue("UDF_PACKAGE_TYPE$", sPACKTYPE)
retVal = oBusObj.GetValue("UDF_PACKAGE_SIZE$", sPACKSIZE)
retVal = oBusObj.GetValue("UDF_TI", nTI)
retVal = oBusObj.GetValue("UDF_HI", nHI)
retVal = oBusObj.GetValue("UDF_HZMT_DAN$", sHZMTDAN)
retVal = oBusObj.GetValue("UDF_HZMT_CLASS$", sHZMTCLASS)
retVal = oBusObj.GetValue("UDF_HZMT_PG$", sHZMTPG)
retVal = oBusObj.GetValue("UDF_HZMT_IG$", sHZMTIG)
retVal = oBusObj.GetValue("UDF_HZMT_UN_NA_NO$", sHZMTUNNA)
retVal = oBusObj.GetValue("UDF_HZMT_PSN$", sHZMTPSN)
retVal = oBusObj.GetValue("UDF_GG_UPCA$", sGGUPCA)
retVal = oBusObj.GetValue("UDF_GG_UPC_CASE$", sUPCCASE)
retVal = oBusObj.GetValue("UDF_GG_UPC_PACKAGE$", sUPCPACK)
retVal = oBusObj.GetValue("UDF_GG_UPC_PALLET$", sUPCPLT)
retVal = oBusObj.GetValue("UDF_ORMD$", sORMD)
retVal = oBusObj.GetValue("UDF_SDS_SHEET$", sSDS)
retVal = oBusObj.GetValue("UDF_EXPIRATION_DATE$", sEXPDATE)
retVal = oBusObj.GetValue("UDF_GREEN$", sGREEN)
retVal = oBusObj.GetValue("UDF_MADE_IN_USA$", sMADEUSA)
retVal = oBusObj.GetValue("UDF_FREIGHT_CLASS$", sFREIGHTCLA)
retVal = oBusObj.GetValue("UDF_LAST_UPDATE$", sLASTUPDATED)
retVal = oBusObj.GetValue("UDF_SSIG$", sSSIG)
retVal = oBusObj.GetValue("UDF_GASKET$",sGASKET)
retVal = oBusObj.GetValue("UDF_LAST_UPDATE$", sNewDate)

IF sECCN = "" or nUNSPSC = 0 or nEDP = 0 or sNIGP = "" or nNSN = 0 or sMILSPEC = "" or sMANUFAC = "" or sMODELNO = "" or sBRAND = "" or sPREFCRIT = "" or sPRODUCER = "" or sNETCOST = "" or sNAFTA = "" or sMEDICALDEVICENO = "" or sNDC = "" or sNDC2 = "" or sNDC3 = "" or sHTSUSA = "" or sHTSMEX = "" or sHTSCAN="" or sCOO = "" or sCOO2 = "" or sCOO3 = "" or nEDEPTH = 0 or nEWIDTH = 0 or nHEIGHT = 0 or nEWGT = 0 or nPACKQTY= 0 or nCDEPTH = 0 or nCWIDTH = 0 or nCHEIGHT = 0 or nCWGT = 0 or nCASEQTY = 0 or nPDEPTH = 0 or nPWIDTH = 0 or nPHEIGHT = 0 or nPWGT = 0 or nPALLETQTY = 0 or nPLTDEPTH = 0 or nPLTWIDTH = 0 or nPLTHEIGHT = 0 or nPLTWGT = 0 or sPACKTYPE = "" or sPACKSIZE = "" or nTI = 0 or nHI = 0 or sHZMTDAN = "" or sHZMTCLASS = "" or sHZMTPG = "" or sHZMTIG = "" or sHZMTUNNA = "" or sHZMTPSN = "" or sGGUPCA = "" or sUPCCASE = "" or sUPCPACK ="" or sUPCPLT = "" or sORMD = "" or sSDS = "" or sEXPDATE = "" or sGREEN = "" or sMADEUSA = "" or sFREIGHTCLA= "" or sNOOFSCREEN = "" or sLASTUPDATED = "" or sSSIG = "" or sGASKET = "" or sNewDate = "" Then retValue = oBusObj.SetValue("UDF_LAST_UPDATE$", sDate)

  • 0

    I would change:

    sDate = FormatDateTime(Now, vbGeneralDate)

    to

    retVal = oSession.FormatDate(Now, sDate, "%M/%D/%Y")

  • 0 in reply to Bareus16

    My guess is that your sDate formula is not coming up with a value in the correct format (YYYYMMDD).  Try this:

    sDate = Year(date) & Right("0" & Month(date),2) & Right("0" & Day(date),2)

  • 0 in reply to BigLouie

    I tried Kevin's suggestion and it didn't change the date. But when I tried Louis I got the error in the picture.

  • 0 in reply to Bareus16

    You are close, maybe Alnoor or Elliott will jump in and detail how to grab the current date.

  • 0 in reply to BigLouie

    Does the rest of the formula looks like it would work besides the date issue?

  • +1 in reply to Bareus16
    verified answer

    This worked for me.

    sDate = Year(date) & Right("0" & Month(date),2) & Right("0" & Day(date),2)
    retVal = oBusObj.SetValue("UDF_TEST_DATE$", sDate)

  • 0

    Wait... where is your "end if"?

  • 0 in reply to Kevin M

    Great! So after I made your changes Kevin it didn't work again but, I changed the script from Post-write to Pre-Write and it worked like a charm! Thank you guys so much for your time and efforts. The bottom is the final code.

    'Initialize vars
    'This script is to update the "UDF_Last_Update on Tab 8 of Item Maintenance based on a change on the tab.


    sECCN = ""
    nUNSPSC = 0
    nEDP = 0
    sNIGP = ""
    nNSN = 0
    sMILSPEC = ""
    sMANUFAC = ""
    sMODELNO = ""
    sBRAND = ""
    sPREFCRIT = ""
    sPRODUCER = ""
    sNETCOST = ""
    sNAFTA = ""
    sMEDICALDEVICENO = ""
    sNDC = ""
    sNDC2 = ""
    sNDC3 = ""
    sHTSUSA = ""
    sHTSMEX = ""
    sHTSCAN = ""
    sCOO = ""
    sCOO2 = ""
    sCOO3 = ""
    nEDEPTH = 0
    nEWIDTH = 0
    nHEIGHT = 0
    nEWGT = 0
    nPACKQTY = 0
    nCDEPTH = 0
    nCWIDTH = 0
    nCHEIGHT = 0
    nCWGT = 0
    nCASEQTY = 0
    nPDEPTH = 0
    nPWIDTH = 0
    nPHEIGHT = 0
    nPWGT = 0
    nPALLETQTY = 0
    nPLTDEPTH = 0
    nPLTWIDTH = 0
    nPLTHEIGHT = 0
    nPLTWGT = 0
    sPACKTYPE = ""
    sPACKSIZE = ""
    nTI = 0
    nHI = 0
    sHZMTDAN = ""
    sHZMTCLASS = ""
    sHZMTPG = ""
    sHZMTIG = ""
    sHZMTUNNA = ""
    sHZMTPSN = ""
    sGGUPCA = ""
    sUPCCASE = ""
    sUPCPACK = ""
    sUPCPLT = ""
    sORMD = ""
    sSDS = ""
    sEXPDATE = ""
    sGREEN = ""
    sMADEUSA = ""
    sFREIGHTCLA = ""
    sNOOFSCREEN = ""
    sLASTUPDATED = ""
    sSSIG = ""
    sGASKET = ""
    sNewDate = ""
    sDate = Year(date) & Right("0" & Month(date),2) & Right("0" & Day(date),2)


    retVal = oBusObj.GetValue("UDF_ECCN$", sECCN)
    retVal = oBusObj.GetValue("UDF_UNSPSC", nUNSPSC)
    retVal = oBusObj.GetValue("UDF_EDP_NUMBER", nEDP)
    retVal = oBusObj.GetValue("UDF_NIGP_CODE$", sNIGP)
    retVal = oBusObj.GetValue("UDF_NSN", nNSN)
    retVal = oBusObj.GetValue("UDF_MIL_SPEC_NUMBER$", sMILSPEC)
    retVal = oBusObj.GetValue("UDF_MANUFACTURER_NAME$", sMANUFAC)
    retVal = oBusObj.GetValue("UDF_MFR_MODEL_NO$", sMODELNO)
    retVal = oBusObj.GetValue("UDF_BRAND$", sBRAND)
    retVal = oBusObj.GetValue("UDF_PREF_CRITERIA$", sPREFCRIT)
    retVal = oBusObj.GetValue("UDF_PRODUCER$", sPRODUCER)
    retVal = oBusObj.GetValue("UDF_NET_COST$", sNETCOST)
    retVal = oBusObj.GetValue("UDF_NAFTA_QUALIFY$", sNAFTA)
    retVal = oBusObj.GetValue("UDF_MEDICAL_DEVICE_NO$", sMEDICALDEVICENO)
    retVal = oBusObj.GetValue("UDF_NDC_NO$", sNDC)
    retVal = oBusObj.GetValue("UDF_NDC_NO_2$", sNDC2)
    retVal = oBusObj.GetValue("UDF_NDC_NO_3$", sNDC3)
    retVal = oBusObj.GetValue("UDF_HTS_CODE_USA$", sHTSUSA)
    retVal = oBusObj.GetValue("UDF_HTS_CODE_MEXICO$", sHTSMEX)
    retVal = oBusObj.GetValue("UDF_HTS_CODE_CANADA$", sHTSCAN)
    retVal = oBusObj.GetValue("UDF_COUNTRY_OF_ORIGIN$", sCOO)
    retVal = oBusObj.GetValue("UDF_COUNTRY_OF_ORIGIN_2$", sCOO2)
    retVal = oBusObj.GetValue("UDF_COUNTRY_OF_ORIGIN_3$", sCOO3)
    retVal = oBusObj.GetValue("UDF_E_DEPTH", nEDEPTH)
    retVal = oBusObj.GetValue("UDF_E_WIDTH", nEWIDTH)
    retVal = oBusObj.GetValue("UDF_E_HEIGHT", nHEIGHT)
    retVal = oBusObj.GetValue("UDF_E_WEIGHT", nEWGT)
    retVal = oBusObj.GetValue("UDF_PACKAGE_QTY", nPACKQTY)
    retVal = oBusObj.GetValue("UDF_C_DEPTH", nCDEPTH)
    retVal = oBusObj.GetValue("UDF_C_WIDTH", nCWIDTH)
    retVal = oBusObj.GetValue("UDF_C_HEIGHT", nCHEIGHT)
    retVal = oBusObj.GetValue("UDF_C_WEIGHT", nCWGT)
    retVal = oBusObj.GetValue("UDF_CASE_QUANTITY", nCASEQTY)
    retVal = oBusObj.GetValue("UDF_P_DEPTH", nPDEPTH)
    retVal = oBusObj.GetValue("UDF_P_WIDTH", nPWIDTH)
    retVal = oBusObj.GetValue("UDF_P_HEIGHT", nPHEIGHT)
    retVal = oBusObj.GetValue("UDF_P_WEIGHT", nPWGT)
    retVal = oBusObj.GetValue("UDF_PALLET_QTY", nPALLETQTY)
    retVal = oBusObj.GetValue("UDF_PLT_DEPTH", nPLTDEPTH)
    retVal = oBusObj.GetValue("UDF_PLT_WIDTH", nPLTWIDTH)
    retVal = oBusObj.GetValue("UDF_PLT_HEIGHT", nPLTHEIGHT)
    retVal = oBusObj.GetValue("UDF_PLT_WEIGHT", nPLTWGT)
    retVal = oBusObj.GetValue("UDF_PACKAGE_TYPE$", sPACKTYPE)
    retVal = oBusObj.GetValue("UDF_PACKAGE_SIZE$", sPACKSIZE)
    retVal = oBusObj.GetValue("UDF_TI", nTI)
    retVal = oBusObj.GetValue("UDF_HI", nHI)
    retVal = oBusObj.GetValue("UDF_HZMT_DAN$", sHZMTDAN)
    retVal = oBusObj.GetValue("UDF_HZMT_CLASS$", sHZMTCLASS)
    retVal = oBusObj.GetValue("UDF_HZMT_PG$", sHZMTPG)
    retVal = oBusObj.GetValue("UDF_HZMT_IG$", sHZMTIG)
    retVal = oBusObj.GetValue("UDF_HZMT_UN_NA_NO$", sHZMTUNNA)
    retVal = oBusObj.GetValue("UDF_HZMT_PSN$", sHZMTPSN)
    retVal = oBusObj.GetValue("UDF_GG_UPCA$", sGGUPCA)
    retVal = oBusObj.GetValue("UDF_GG_UPC_CASE$", sUPCCASE)
    retVal = oBusObj.GetValue("UDF_GG_UPC_PACKAGE$", sUPCPACK)
    retVal = oBusObj.GetValue("UDF_GG_UPC_PALLET$", sUPCPLT)
    retVal = oBusObj.GetValue("UDF_ORMD$", sORMD)
    retVal = oBusObj.GetValue("UDF_SDS_SHEET$", sSDS)
    retVal = oBusObj.GetValue("UDF_EXPIRATION_DATE$", sEXPDATE)
    retVal = oBusObj.GetValue("UDF_GREEN$", sGREEN)
    retVal = oBusObj.GetValue("UDF_MADE_IN_USA$", sMADEUSA)
    retVal = oBusObj.GetValue("UDF_FREIGHT_CLASS$", sFREIGHTCLA)
    retVal = oBusObj.GetValue("UDF_LAST_UPDATE$", sLASTUPDATED)
    retVal = oBusObj.GetValue("UDF_SSIG$", sSSIG)
    retVal = oBusObj.GetValue("UDF_GASKET$",sGASKET)
    retVal = oBusObj.GetValue("UDF_LAST_UPDATE$", sNewDate)
    retVal = oBusObj.SetValue("UDF_LAST_UPDATE$", sDate)


    IF sECCN = "" or nUNSPSC = 0 or nEDP = 0 or sNIGP = "" or nNSN = 0 or sMILSPEC = "" or sMANUFAC = "" or sMODELNO = "" or sBRAND = "" or sPREFCRIT = "" or sPRODUCER = "" or sNETCOST = "" or sNAFTA = "" or sMEDICALDEVICENO = "" or sNDC = "" or sNDC2 = "" or sNDC3 = "" or sHTSUSA = "" or sHTSMEX = "" or sHTSCAN="" or sCOO = "" or sCOO2 = "" or sCOO3 = "" or nEDEPTH = 0 or nEWIDTH = 0 or nHEIGHT = 0 or nEWGT = 0 or nPACKQTY= 0 or nCDEPTH = 0 or nCWIDTH = 0 or nCHEIGHT = 0 or nCWGT = 0 or nCASEQTY = 0 or nPDEPTH = 0 or nPWIDTH = 0 or nPHEIGHT = 0 or nPWGT = 0 or nPALLETQTY = 0 or nPLTDEPTH = 0 or nPLTWIDTH = 0 or nPLTHEIGHT = 0 or nPLTWGT = 0 or sPACKTYPE = "" or sPACKSIZE = "" or nTI = 0 or nHI = 0 or sHZMTDAN = "" or sHZMTCLASS = "" or sHZMTPG = "" or sHZMTIG = "" or sHZMTUNNA = "" or sHZMTPSN = "" or sGGUPCA = "" or sUPCCASE = "" or sUPCPACK ="" or sUPCPLT = "" or sORMD = "" or sSDS = "" or sEXPDATE = "" or sGREEN = "" or sMADEUSA = "" or sFREIGHTCLA= "" or sNOOFSCREEN = "" or sLASTUPDATED = "" or sSSIG = "" or sGASKET = "" or sNewDate = "" Then retValue = oBusObj.SetValue("UDF_LAST_UPDATE$", sDate) End IF

  • 0 in reply to Bareus16

    In addition to the other answers, if your goal is to use the current date, you can just use oSession.SystemDate. It is already in the YYYYMMDD format that sage 100 expects date values to be in.

    You can also use oSession.GetFormattedDate([Date Input In mm/dd/yyyy format]) to return a date value formatted as YYYYMMDD.

    When you want to display a date that is in the YYYYMMDD format in another format that is more display friendly, use the oSession.FormatDate([Date Input in YYYYMMDD format], [Date Output in format passed in the Mask parameter], [Mask]) function.

    Refer to this table to assist with creating the mask string. I typically use "%Mz/%Dz/%Y" so today's date would be displayed like this, "05/10/2019".