Using Scales with Devicehub without having Warehouse "Automated Warehouse Operations".
Is there a way to connect a single scale, maybe two or three in time, to Devicehub without having to purchase "Automated Warehouse Operations"? It seems kind of silly that we can’t even connect one.
Will we ever purchase "Automated Warehouse Operations"? Likely in time but we have a long way to go before getting into the Manufacturing and Warehousing aspects of Acumatica and we’d like to be utilizing this in Shipping now.
Is there a compromise or work around anyone’s thought of that works?
Thanks ;-)
Page 1 / 1
@jmckinnon I think DeviceHub is available regardless of your license; that’s all you need to integrate with the scale. The problem is that the standard Shipments screen doesn’t support the scale, but a developer can create a customization that pulls in the current weight from the user’s scale and inputs it in the current row in the Packages tab. Here’s a mockup of what I have in mind:
Do you work with a consultant that is familiar with the Acumatica framework? I don’t have a USB scale to test, but sample code to read the current scale weight can be found in PickPackShip.cs, in the ProcessScaleWeight function (extracted here in case anyone is interested) -- basically it just reads from the SMScale table to get the last received weight, and does some sanity checks in case the weight hasn’t changed in the last 30 seconds:
I thought the error was on the client app itself, I’ll do some due diligence and follow-up with some details to be sure and I’ll be crossing my fingers that you’re right.
Regarding the customization…
This is C#, right? I haven’t gotten into that part yet. I see there’s a lot of checking / error trapping going on… guess that’s par for the course lol In addition to this then I suspect I’d also have to focus on the readings from the specific scale, just in case there’s two of them being used. on two different stations.
Thanks again for your guidance! maybe this will serve as my introduction into C#. ;-)
@jmckinnon@Gabriel Michaud - do you know if any company has deployed the customization idea that Gabriel proposed? This could be an extremely useful tool for us to start doing all of our packing and shipping within Acumatica directly.
Hello thread posters,
Those interested in one-on-one discussion, please post here. We would like to hear more about the challenges covered in this Community Post.
@MichaelTobi@jmckinnon
-thanks, Dana
Is it possible to capture weights from a device-hub connected scale for inventory transactions, e.g. when issuing a raw material ingredient to a Production Order, or receipting a PO quantity? Does this require a customisation too?
@fionabruce Yes, it requires a customization. But a DeviceHub connected scale should work for Production Orders or PO Receipts.
I needed a similar customization as described by @Gabriel Michaud. My company ships within Acumatica, but we don’t use Automated Warehouse Operations for pick/pack/ship. I was able to add a “Get Weight” action button to the Packages tab/grid of the Shipment Entry screen and have it use a Device Hub connected scale (e.g. Mettler Toledo PS60.) I’ve pasted the code below for anyone who wants a head-start.
If Acumatica would add support to DeviceHub for dimensioners... then I'd have something. We have 12 packaging lines and our box sizes are variable, so we are hand-keying W,L,H for every box. It's error prone.
Note: DeviceHub uses an API connection for scales, which appear to stay logged-in. I'm assuming this is for each connected scale. We have 15+ scales and several other connected applications which also rely on API connections (e.g. e-commerce, analytics, etc.)
I don't have all the scales online yet with DeviceHub, but I'm concerned I'm going to create a denial-of-service situation whereby the scales are constraining other higher priority API calls. Seems silly (to me) that Acumatica treats DeviceHub calls against your API limits.
I added a non-persisting boolean usrScaleRegistered field to the packages grid to allow me to (en|dis)able the action button based on if the scale is present for the logged-in user.
public class SOShipmentEntry_Extension : PXGraphExtension<SOShipmentEntry> { protected SMScale UserScale { get; set; } public virtual int ScaleWeightValiditySeconds => 150;
public override void Initialize() { base.Initialize();
this.UserScale = GetScale(); }
protected virtual SMScale GetScale() { // get default scale value from user profile var userPrefs = UserPreferences.PK.Find(Base, Base.Accessinfo.UserID); Guid? scaleDeviceID = userPrefs?.DefaultScalesID;
#region Messages aPXLocalizable] public abstract class Msg { public const string ScaleMissing = "The scale is not found in the database."; public const string ScaleDisconnected = "Scale data expired. Check scale connections."; public const string ScaleTimeout = "Scale measurement has expired. Remove the package from the scale and try again."; public const string BoxWeightWrongUOM = "Only KG and LB are supported."; } #endregion }
Hi @brothe58 ,
It seems like the Scales (SM206530) screen is only available with the WMS license feature enabled. Were you able to add the scale for use in DeviceHub without this screen?
Laura
Hi @lauraj46, I hadn’t considered the WMS module might be a requirement, but I think you’re right. I do have that enabled in our tenant.