I didn't go the details of these classes.
But you can add simple parm method to InventOnHandQty and use it to set/get class variables of InventOnHandQty.
Here's an illustration: you can add new "MyNewMethodForPassingAnyInfo" method to InventOnHandQty via class augmentation ([ExtensionOf...).
Then you can call it from InventUpd_Picked.updatePickInventTrans method and pass whatever info you like:
if (checkOnhand)
{
InventOnHandQty inventOnHandQty = InventOnHandQty::newPhysicalUpdate(movement, pickInventDimCriteria);
inventOnHandQty.MyNewMethodForPassingAnyInfo("Any info");
if (!inventOnHandQty.checkItemDraw(_inventTrans.Qty,
allowNegativePhysical,
true,
_inventTrans.PdsCWQty))
{
throw error("@SYS18447");
}
}
Is it now clear?
However InventOnHandQty::newPhysicalUpdate method already takes an InventMovement object, which contains quite a lot of information. Perhaps you don't need to pass any additional info.