Minimum Version Required: 22.01
Pre-Conditions
Location records must already exist in the system
Products must exist or you must map ProductID_Translation for auto-creation
User must have appropriate permissions for inventory adjustments
Location must have at least one route and route version defined
Adjustment Bin must exist in the system
Steps
EDBL Routines Disclaimer: This EDBL routine represents advanced functionality primarily intended for use by Encompass technical staff. While technically proficient customers may utilize these routines, please be aware that they fall outside the scope of standard support. Assistance with EDBL routines is not covered under standard support agreements and may require billable services from our Professional Services team. Please ensure you thoroughly understand this routine before implementation in your production environment
The Inventories EDBL routine imports inventory data into the system, setting opening inventory values for products at specific locations. This routine creates opening inventory purchase records to properly track the inventory and its costs.
The import handles:
Creating or updating physical inventory quantities
Setting inventory cost information (laid-in cost, freight, tax, etc.)
Creating the necessary shipment and purchase records to track inventory provenance
Updating existing inventory records with new cost information
Synchronizing with bin inventory if necessary
When run, the routine will:
Create or update shipment records for the inventory
Create purchase records linked to these shipments
Create purchase transaction records for each inventory item
Update inventory costs in the Inventories table
Zero out any previously imported sales/purchases to avoid duplications
This routine is typically used during system setup or when making significant inventory adjustments
Fields And Definitions
LocationID/LocationID_Translation: The location where inventory exists. If not provided, system defaults to the user's current location.
ProductID/ProductID_Translation: Identifies the product for the inventory record. At least one of these fields must be mapped. If using ProductID_Translation and the product doesn't exist, it may be created.
ProductName: The name of the product (informational only).
Inventory: The quantity of inventory for the product at the specified location.
FOB: Free On Board cost component of the inventory valuation.
Freight: Freight cost component of the inventory valuation.
Tax: Tax cost component of the inventory valuation.
OtherCost: Miscellaneous costs related to the inventory.
LaidInCost: Total cost of inventory per unit (calculated or provided).
ExtLaidInCost: Extended laid-in cost (total cost for all units).
DepositCost: Cost of deposits (particularly relevant for kegs).
WholesaleUnitsPerCase: Number of units in a case for wholesale purposes. If different from the product's default, quantities will be adjusted accordingly.
ExpirationDate: Expiration date for the inventory.
CodeDate: Code date for the inventory (often used for lot tracking).
PalletTag: Tag identifier for pallets.
BatchCode: Batch or lot code for the inventory.
VendorID/VendorID_Translation: The vendor associated with this inventory. Defaults to "Opening Inventory" if not provided
Best Practices
Always include ProductID or ProductID_Translation as these are required fields.
Include cost information (FOB, Freight, Tax, etc.) for accurate inventory valuation.
If WholesaleUnitsPerCase differs from the product's setting in the system, the routine will adjust quantities accordingly.
Ensure the system has a Customer of type InventoryAdj for the location to properly process inventory adjustments.
Run this routine before importing sales or other transactions that depend on inventory.
When updating existing inventory, be aware that the routine will adjust costs based on the provided values.
For keg products, deposit costs will be set automatically if not provided.
If you provide ExtLaidInCost without LaidInCost, the system will calculate LaidInCost by dividing ExtLaidInCost by quantity.
After running this import, the Correct_BinInventories_2_Inventories task will run to sync bin inventories with the updated inventory values. This can take a long time