Storage Class
- Last UpdatedNov 06, 2025
- 2 minute read
The Storage class provides a mean for handling inventory and storage entities without having to log into an entity. The methods in this class are all static.
The following is a sample code to move an inventory from one storage entity to another:
dimclientSessionASaaFactMES.aaClientSession;
dimresultASaaFactMES.Result;
dimfromEntityasaaFactMES.aaEnt;
dimstorageasaaFactMES.aaStorage;
diminvDataSetasSystem.Data.DataSet;
dimidasInteger;
dimsourceRowIdasInteger;
dimtoAreaNameasString;
dimtoAreaIdasInteger;
dimmoveQuantityasFloat;
dimtempEntasaaFactMES.aaEnt;
dimfilterasString;
if(clientSession <>nullandclientSession.CurUser<>null)then
' find the "from" entity that the user is logged into
foreachidinclientSession.curUser.EntList.Keys
tempEnt =clientSession.curUser.EntList[id];
if(tempEnt.entName==me.entityName)then
fromEntity = tempEnt;
exitfor;
endif;
next;
if(fromEntity <>null)then
' create query for lot to move
filter ="lot_no="+me.moveRollId;
ifme.debugthenLogMessage("ID for receiving entity is: "+fromEntity.entId+", filter is: "+ filter);endif;
' inventory at this station
result = aaFactMES.aaStorage.GetInventoryData(fromEntity.entId,false, filter);
ifresult.Successthen
invDataSet =result.DataSet_Value;
ifme.debugthen
LogMessage("Inventory data set table count: "+invDataSet.Tables.Count);
LogMessage("Inventory data set row count for table 0: "+ invDataSet.Tables(0).Rows.Count);
LogMessage("Inventory data set column count for table 0: "+ invDataSet.Tables(0).Columns.Count);
endif;
ifinvDataSet.Tables(0).Rows.Count > 0then
sourceRowId = invDataSet.Tables(0).Rows(0).Item("row_id");
' move entire quantity
moveQuantity = invDataSet.Tables(0).Rows(0).Item("qty_left");
ifme.debugthenLogMessage("Found Row ID: "+ sourceRowId +" and quantity of "+ moveQuantity +" for lot "+me.moveRollId);endif;
' find entity id of area
result = aaFactMES.aaEnt.EntIdFromName(toAreaName);
toAreaId =result.Int32_Value;
ifme.debugthenLogMessage("Transferring to area id: "+ toAreaId);endif;
' perform the transfer
result = aaFactMES.aaStorage.TransferInventory(toAreaId,me.moveRollId, sourceRowID, moveQuantity,"Transfer","UseSourceInfo");
ifresult.Successthen
me.resultText="Transfer succeeded for lot: "+me.moveRollId;
me.moveInventoryComplete=true;
me.resultIsError=false;
else
me.resultIsError=true;
me.resultText=result.Exception.Message;
endif;' end transfer
else
me.resultIsError=true;
me.resultText="No inventory found for lot ID filter '"+ filter +"'";
endif;' end inventory query
else
me.resultIsError=true;
me.resultText=result.Exception.Message;
endif;'end inventory check
else
me.resultIsError=true;
me.resultText="User is not logged into entity '"+me.entityName+"'";
endif;' end logon check
else
me.resultIsError=true;
me.resultText="No Factelligence session started or user not logged on";
endif;' end session check
System.Object
FactMES.Client.Common.Storage