Original Message:
Sent: 05-13-2026 09:44
From: Kevin Moyes
Subject: Occasional Error 88 from Button Script
This is from my notes... not sure where I found the reference:
If oSession.ObjectInterface = 0 Then
' Launched from Sage 100 Desktop
End If
If oSession.ObjectInterface <> 0 Then
' Launched from COM object
End If
------------------------------
Kevin Moyes
Technical Systems Analyst
Munjal White Consulting Co.
Toronto ON
------------------------------
Original Message:
Sent: 05-13-2026 08:47
From: Phil McIntosh
Subject: Occasional Error 88 from Button Script
@Alnoor Cassim - Is there a way to have this script not fire if the call is from a BOI app? We have an integration BOI app that started failing on Sales Order SetKey with this script in place, and runs normally again with it removed.
------------------------------
Phil McIntosh
Friendly Systems
Original Message:
Sent: 05-04-2026 14:59
From: Alnoor Cassim
Subject: Occasional Error 88 from Button Script
Place this snippet at the top and you should be good. This is needed for business scripts but not for UI scripts, and not for button scripts. I usually have a bit at the top of every script that checks to see if we're sitting in a UI to begin with and then does this bit:
If IsObject(oUIObj) = False Then
oUIObj = oScript.UIObj 'Updates will not have UIObj
Set oUIObj = oSession.AsObject(oUIObj)
End If
------------------------------
Alnoor Cassim
Accounting Systems, Inc. (ASI)
Original Message:
Sent: 05-04-2026 14:34
From: Phil McIntosh
Subject: Occasional Error 88 from Button Script
@Alnoor Cassim, I put this on a Sales Order Header Post Read event and it gives an Error 88 Object required:
oUIObj, SY_MAINT.PVC 3480 in CallScript
------------------------------
Phil McIntosh
Friendly Systems
Original Message:
Sent: 04-30-2026 15:07
From: Alnoor Cassim
Subject: Occasional Error 88 from Button Script
No each screen gets 32MB. OK here is how to figure out available workspace memory. Even if this is not the cause of the Error 88 at least this possibility will have been eliminated.
'Get available workspace memory. 'Either create a new Customizer button with no desc OR create a numeric UDF'Create a PostRead script and attach this to itrV =oScript.DebugPrint("About to get DSZ")rV = oScript.Execute("tmpDSZ = DSZ")vbDSZ = oScript.Evaluate("tmpDSZ")vbDSZFormatted = FormatNumber(vbDSZ,0,,,-1)'Now either set the button text OR SetValue into the UDF'retVal = oBusObj.SetValue("UDF_DSZ", vbDSZ)'Change BT_LINK_3 to whatever it is for youoUIObj.SetControlProperty "BT_LINK_3", "Visible", 1oUIObj.SetControlProperty "BT_LINK_3", "Text$", "Mem=" & CStr(vbDSZFormatted)
------------------------------
Alnoor Cassim
Accounting Systems, Inc. (ASI)
Original Message:
Sent: 04-30-2026 14:50
From: Phil McIntosh
Subject: Occasional Error 88 from Button Script
@Alnoor - Is it possible that users having multiple Sales Order Entry screens open at once could contribute, or does each screen each get a full 32mb?
------------------------------
Phil McIntosh
Friendly Systems
Original Message:
Sent: 04-30-2026 14:28
From: Alnoor Cassim
Subject: Occasional Error 88 from Button Script
Lee - Last week I responded to @Phil McIntosh about this. I'm assuming this is the same client for you guys. @Kevin Moyes and I mentioned there this could be another variation of the 64-bit script timeout issue but Phil mentioned this was a 32-bit system, so it wasn't that. I told Phil it could be something else and I would post a sample script soon to detect that. I will try to do so by this evening.
You may remember that in pvx, every screen only gets a max 32MB of workspace memory despite the amount of system memory present. Sage object code does a good job of DROP OBJECT and other things for memory management / garbage collection so that number never gets close to 0. However, with mods and scripts, we have to do the same thing, otherwise at some point in the day, that S/O Entry screen that's been working fine will potentially crash in some way.
** So a PostRead script can be created to show the available workspace memory based on the pvx DSZ system variable and placed in a UDF. I'll post that sample soon. The point here is when they report the Error 88 now you can now check to see if they are out of memory.
------------------------------
Alnoor Cassim
Accounting Systems, Inc. (ASI)