Modules:Advanced Warehouse Operations/Inventory Count
Since Advanced Warehouse Operations v. 1.5.0 the count process has been heavily refactorized and improved with the following main features:
- Allow to share an Inventory Count between several users.
- Define a recount period in shared counts for the stock where mismatches were found.
- Allow to create inventory count lists on the fly for shared and non-shared counts
- Allow to update the book quantity in a similar way like the Core’s process.
- New Inventory Count window in backend to centralize all the counts
- Refactorized Count menu in Frontend to support above features.
The old count tasks will be still visible after the upgrade, and any existing available task could be safely confirmed after the upgrade, however any new count task will be created using the new architecture.
Type of counts
In AWO there are three different types of count actions (and therefore ITTs). It’s important to remember all of them before moving forward with the Inventory Count documentation:
- Count (CNT-PI): it is related with planned counts created from the backend and usually confirmed from the frontend. It’s recommended that the routing associated with this ITT is set to Manual confirmation. Any planned count created for individual users will be usually related to this action.
- Recount (REC-PI): it is exactly the same as the previous CNT action but it is commonly used for indicating -for audit reasons- that a previous count could have been wrong. It’s recommended that the routing associated with this ITT is set to Manual confirmation
- CycleCount (CYC-PI): it is associated with frontend only related counts. It is recommended to associate it with a routing with auto confirmation, so the count tasks are automatically confirmed in the moment they are created.
In AWO the inventory counts are blind by default, which means the warehouse users don't know the theoretical quantity on hand. This behavior is driven by the Force Blind Inventory Count preference (in old AWO releases the preference was called Allow Blind Inventory Count).
However, this behavior can be changed in several ways:
- If the Force Blind Inventory Count preference is set to N, then the user can manually configure the blind behavior for each individual Inventory Count, i.e. it is allow to defined blind or non-blind counts when creating new inventory count documents.
- In case of allowing non-blind counts, the Create Blind Inventory Counts by default preference will configure the default behavior when creating new inventory counts. In any case the user can manually override it in each individual inventory count document (backend and frontend).
Besides that, there is a flag called Initialize Quantity Count with Book Quantity, available only when creating a non-blind inventory count documents (backend and frontend), that configures how to initialize the quantity count: either to the book quantity (aka quantity on hand) or to zero. That means that the users will see the theoretical quantity on hand or zero depending on that configuration. The default value for this flag can be customized using the Initialize count with qty on hand for not blind counts preference.
With these configurations, the warehouse manager has a total flexibility to create the configuration needed at any moment in time.
Inventory Count window
This new window in the backend will centralize any inventory count registered in the warehouse. It has its own document sequence and it’s associated with a warehouse.
It allows to define shared and non-shared counts through the Shared Count flag.
Non shared counts are the ones run by a single user. The list of stocks to be counted is displayed into the Physical Inventory Proposal Lines tab, which is automatically populated by different processes.
Each of the lines is associated with a task, which will be displayed as an individual task for the assigned user in the frontend device:
The tasks associated with an individual inventory count are always related to the Count Physical Inventory ITT. That’s why it’s recommended to configure the associated Routing as manual confirmation, so the tasks can be confirmed into the handheld.
Assign User Responsible
In non-shared counts, the Assign button will allow to set the user responsible for this inventory count. All the tasks generated by this document will be automatically assigned to the user responsible. You can leave it blank, and the tasks will be created without a default user assigned, so you can manually set it later on or use the Operator Load Balancing to automatically do it for you.
Shared counts are the ones that can be run by more than one user at the same time. Each of the users involved in the shared count will divide the same stock to count.
For example: two users can count the Apples inside the bin Food001. A first user can count 10 units and a second user 25 units, so the total number of apples will be 35 units (10+25).
In a shared count you must specify the user responsible (Assigned field in the Inventory Count header) who will finally update the stock count in the system, and one or several users that will participate in the count process (in the Users tab). The user responsible can be included (or not) into the Users tab.
Below the Users tab there two new tabs with the same structure: Shared Counts and Shared Recounts. They store what has been individually counted and recounted respectively by each of the users:
Like in the case of the non-shared counts, the shared counts have the Physical Inventory Proposal Lines tab (and the Task tab), which in this case holds the count and recount lines automatically created by the system as the merge of the counts and recounts run by the users. Note that the Description has the information about the quantity counted by each user involved:
In shared counts, the Assign button will allow to:
- Set the user responsible for this inventory count (as in the non-shared counts). Remember that in shared counts it's mandatory to specify the user responsible.
- To set or unset users that will take part in the inventory count. The user responsible might take part (or not) in the inventory count.
The Start Count Now button allows you to immediately start the inventory count process. If not selected, the Inventory Count will remain in Draft status and it can be started later on.
It’s possible to add new users to shared count only meanwhile the inventory count is either in Draft or Counting status (see Inventory Count Statuses later on)
Inventory Count Statuses
The status of the count is controlled at the header and by user levels. There is a button available at header and at user level to confirm each status. It will be available depending on the phase in which the inventory count is. Examples:
The list of (ordered) statuses is:
- Draft: the count has not started yet
- Counting: the count has started and it’s in progress
- Count Completed: the count is over and the count tasks that will finally update the stock have been created. In case of shared counts, the tasks will be associated with the Cycle Count ITT, which is recommended to be associated with auto confirm routings.
- Recounting (only available for Shared Counts): If Recount period is enabled, and there is any mismatch between what counted by the users and the system data, then the recounting period is started only for those records and users where a mismatch has been found.
- Recount Completed (only available for Shared Counts): The recount is over and the recount tasks that will finally update the stock have been created. The recount tasks are associated with the Recount ITT, so it’s recommended that the associated Routing is configured as manual confirmation, so the user responsible is able to manually confirm the recount tasks after a review.
- Closed (only available at header level): When every task linked to the Inventory Count is confirmed, then the Inventory Count status is set to Closed. This allows to detect Inventory Count where some activity is still pending.
Note that in case of shared counts, each individual user may have a different status in each phase. For example, if the header is in Counting status, one user can be in Counting status too (if he hasn’t completed yet the count) and another user can be in Count Completed status if he has individually finished the count.
Each user can individually change his own status (both frontend and backend), or the user responsible can update the status of all the users globally (only from the backend). In any case there are some audit fields at header and user level (Time Periods field group) to track when each status was started and completed.
The usual flow for non shared counts is the following:
- The stock to be counted is selected by any of the available processes.
- The Inventory Count status is set to Counting.
- The Physical Inventory Proposal Lines are automatically populated.
- The Count Physical Inventory tasks are automatically created.
- If the Inventory Count is assigned to any user, then the task will be assigned to that user at creation time. Otherwise they can be assigned later on either manually or automatically.
- The tasks are displayed into the assigned user frontend device, and it can be individually confirmed by the user.
- When the last task is confirmed, then the Inventory Count status is set to Count Completed and then to Closed.
The usual flow for shared counts is the following:
- A user is assigned as the Inventory Count responsible.
- Several users are assigned to the shared count by the user responsible, who can participate as well in the count.
- The stock to be counted is selected by any of the available processes.
- Each user receives the same list of stock to count, and it’s populated into the Shared Count tab.
- The header and users are both in Counting status.
- Each user counts all the assigned stock, and when ready its status is updated to Count Completed.
- When the last user has finished (or when the user responsible decides so) the Inventory Count header is set to Count Completed.
- Now the process is split depending on the Recount period availability. If the Recount period is not enabled, then:
- the system creates the Physical Inventory Proposal Lines for all the counted stock regardless of the counted quantity coinciding with the booked one or not, and then the Cycle Count tasks, which will be assigned to the Inventory Count assigned user.
- The assigned user will confirm the tasks (either in backend or in his frontend device) if the routing associated with the Cycle Count ITT is configured as manual confirmation. If the routing is configured for automatic confirmation (as recommended), then the tasks will be autoconfirmed and they won’t appear into the handheld.
- When the last task is confirmed, the Inventory Count status is set to Closed.
- If the Recount period is enabled, then:
- the system automatically creates the Physical Inventory Proposal Lines and the correspondent tasks for all the counted stock where the count quantity is equal to the book quantity.
- The Cycle Count tasks are assigned to the user responsible that should manually confirm them or not depending on the routing’s confirmation configuration.
- At the same time the system automatically creates new Shared Recount lines for each user and stock where it was detected a mismatch between the book quantity and the quantity counted by each user. If there is anything to recount, then the Inventory Count status header and each user involved in the recount where a mismatch were found are set to Recounting, otherwise the status will remain as Count Completed.
- Then each user should recount the necessary stock and when ready its status is updated to Recount Completed.
- When the last user has finished (or when the user responsible decides so) the Inventory Count header is set to Recount Completed.
- Then the system automatically creates the Physical Inventory Proposal Lines and the correspondent tasks for all the recounted stock.
- The recount tasks are assigned to the user responsible that should confirm them (either in backend or in his frontend device).
- When the last task is confirmed, the Inventory Count status is set to Closed.
Processes to generate inventory count
Inventory Count window in Backend: Generate List
In the Inventory Count window there is a button called Generate List which has several filters. The process will search for the stock that fulfills all these filters and either populates the Physical Inventory Proposal Lines for non-shared counts, or the Users | Shared Count lines for users involved in the shared count.
In the shared count scenario it’s important to understand that the list will be generated only for the users already linked to the inventory count before launching the Generate List, so any other user added after that won’t have the list. This allows very flexible inventory count configurations.
Note that this process can be called as many times as necessary meanwhile the Inventory Count is in Draft or Counting statuses.
Remove Not Counted Yet Lines
This flag will delete any count line previously available in the inventory count. If there is something already count for a concrete line it won’t be deleted.
By default this flag is not set, which means that any existing line will be kept and new lines will be created. If you try to introduce duplicated count lines, the system will transparently manage it avoiding to create duplicates.
Initialize Stock for selected Products and Storage Bins
Usually the Generate List process will only create count lines for the stock that is (or that was) available in the system.
However there is a special behavior in the process that allows you to initialize the stock for concrete products in the selected storage bins regardless the stock was never available before. This process is usually needed only when your warehouse already has the real stock and you want to initialize into Openbravo.
This mode only works with this configuration:
- Inventory Quantity is equal to 0
- Initialize Stock for selected Products and Storage Bins flag is set
- One or several Storage Bins are provided
- One or several Products are provided
Warehouse Operations window in Backend: Count
The Count button available in the Warehouse Operation window allows to select one or more existing storage details without available tasks and launch either a non-shared or a shared count.
In the example above we want to count the selected storage details. If we want to run a non-shared count, then we just need to specify the storage details and press Done. This will create the Inventory Count and any the necessary Count tasks.
On the other hand, for a shared count we must specify the Assigned (aka the user responsible for the count) and one or more Shared Count Users. We can also enable the recount period.
The Start Count Now will set as Counting the Inventory Count, but if not selected the Inventory Count will remain in Draft status so further modification can be done. The tasks will be linked to the Cycle Count ITT.
Warehouse Operations window in Backend: Recount
The Recount button available in the Warehouse Operation window allows to select one or more existing storage details without available tasks and launch a non-shared count. It is similar to the Count button, but it creates Physical Inventory Recount tasks for a single user.
Please note that launching a direct recount has only sense for individual counts. Remember that shared counts have their own “Recount Period” explained above.
For shared counts you can manually enter lines for each user while in Draft or Counting statuses.
This way is in general discouraged because it is not very user friendly, and it’s only reserved for very concrete exceptions, for example when you want a user to count very specific storage details.
Update Book Quantities
This process can be launched for both shared and non-shared inventory counts meanwhile they are not closed. It updates the book quantities for each shared count line and physical inventory proposal line, and also the expected quantity for any available (not confirmed yet) task with latest product quantity found in the application.
Note that the process won’t update the quantity counted by the users but the book and/or expected quantity.
This process should be used only in case it has changed since the count list was generated. It is useful for situations when there is a significant amount of time in between generating physical inventory on Openbravo and real physical count.
This process is in charge of creating the tasks from the Physical Inventory Proposal Lines (either created for a shared or non-shared inventory count).
Tasks are always created automatically by the system so the user shouldn’t need to worry about this. This process should only be run in the case any of the tasks have been deleted by mistake or in any other exceptional case.
Inventory Count in Frontend
Inventory Count functionality can be initialized and confirmed from both backend, as we have shown before, and frontend.
In the frontend the Count menu entry has been totally refactorized to support the new features.
Please note that the Count window is developed using the new skin, that will be gradually adopted by the rest of the frontend windows in the future.
When you open the Count window a new popup will appear where you can select the users that will take part of the count. You can select the available users from the list, which can also be filtered to easily find the user(s).
By default the user currently logged in is automatically selected and it can’t be unselected.
If you don’t select any user, then an individual count will take place. If you select another user(s) then a shared count will be performed.
Use the Enable Recount flag to add a recount period in the case of shared counts.
The Select Stock button is similar to the Generate List button available in the backend: it allows to define filters to generate an inventory count list for the previously selected users. Please note that in the backend you can launch this process as many times as you want, but in the frontend you can launch it once per inventory count.
The Start Count button (available into the Select Users and the Select Stock windows) will automatically create the Inventory Count document and it will set it to Counting status.
Inventory Count UI
This is the Inventory Count interface that each of the users involved into the account will have in their handhelds. Remember that by default counts in the front end are “blind” which means that quantity on hand information is not shown. See #Blind_counts section for more information about how to configure that behavior.
In the screenshot we see that we have one stock line to count, which has been automatically added by the select stock process. Remember that we can also start an inventory count without running this process, so in this case the list would be empty.
Just above the list of stock to count there are two important fields:
- Document No: that shows the inventory count document number that we are currently working on. When you press on it an information popup appears in which the user responsible is able to modify the recount period availability in a controlled way:
- Storage Bin: This is a very important field and represents the storage bin you’re currently counting. You should first scan the bin and then scan the products available in that bin. If you press on it you can manually search and select any storage bin:
Moving back to the Count window, we can find a toolbar with the following buttons:
- Add, which allows to manually search and add products to the count list within the currently selected storage bin:
- Users, which opens a window to select new users that will participate in the inventory count. It also allows to remove existing users.
Users participating in the count can only be modified by the user responsible meanwhile the Inventory Count is not yet into the recount period.
A warning will appear in case of deleting a user who has already counted anything. If the responsible confirms the deletion, then anything counted by that user will be also removed and this action can’t be reverted.
- Confirm, which must be pressed only when the user has finished his own count/recount. Note that a confirmation can’t be reverted later on, so it’s important to confirm when you’re really sure you have completed the count.
- Scans, which shows a log with the last records scanned. The user can manually repeat a scan by pressing the Scan button
Usual flow for Inventory Counts in frontend.
As you have seen, the Inventory count can be started from either the backend or from the frontend.
Creating and configuring the Inventory Count from the backend allows the user responsible to finetune the count with complex scenarios if necessary, like launching the Generate List several times or initializing stock, actions which are not possible from the frontend. However this advanced functionality is not commonly necessary in normal counts so the inventory count document can be usually created from the frontend too.
Once the Inventory Count is ready and in Counting (or Recounting) status, each user involved in the count will see a task in his handheld that represents the Inventory Count with the status (either Counting or Recounting). Example:
The Inventory Count UI will be displayed after pressing on the task. Then the user will have two possibilities to count (both are possible within the same document):
- To already have loaded a list of all the stock to be counted (or recounted).
- To manually add new stock to the list.
In both cases the user’s interaction with the handheld is exactly the same:
- To scan the storage bin we are currently working on.
- To scan the products available in this bin.
- Once the bin’s count is over, scan a new bin and repeat the scan for the products available in the new bin.
In case of manually adding new items to the list, it would be necessary to inform about the stock attributes if the product requires so.
Each time an interaction is done in the handheld it’s saved into the backend (after very few seconds of delay), so the users can resume the count afterwards.
Once the user has completed the count he will confirm it. Then the inventory count will disappear from the handheld. If later on there is a need for a recount, the document will appear again into his device.
Note that the actual physical inventory update will take place only after the user responsible confirms the count/recount task (either automatically or manually based on the routing’s configuration).