The inventory count widget is configured by default with the following count types:

  • ABC Cycle Count - includes balances due for count based on ABC analysis
  • Unreconciled Count - includes balances that are unreconciled
  • Ad-hoc count - includes all balances in the storeroom


In addition, Opqo supports inventory counting via Count Books, including both the PLUSTCB count books from industry solutions such as Transportation, as well as the now standard count books present in more recent versions of Maximo, including MAS.


Note: Opqo will automatically detect the type of count books available in your Maximo environment during installation. Additionally, the Count Book count type will only be available to Opqo users if your Maximo environment supports count books.


It is possible through configuration to change the available count types, and add custom count types.


To change the available count types, add a configuration map to the moduleconfig section of the STAUTOSCRIPT.STAMCONFIG automation script with the following properties:


Property NameValue
moduleInventoryCountModule
providersA list of configuration maps specifying the available counts



For example, the default configuration is as follows:

appConfig = {
  ...
  "moduleconfig": [
    ...
    {
      "module": "InventoryCountModule",
      "providers": [
        {
          "module": "CountbookCountModule"
        },
        {
          "module": "AbcCycleCountModule"
        },
        {
          "module": "UnreconciledCountModule"
        },
        {
          "module": "AdhocCountModule"
        }
      ]
    }
  ]
}


Opqo displays the count types using the contents of the providers list.  Removing a count type from this list will remove it from the list displayed in the app. 



Note: For more information on Opqo configuration and the role and contents of the STAUTOSCRIPT.STAMCONFIG script, see the Configuration Overview article.



Default Count Type Queries


Each of the default count types, apart from the CountbookCountModule, use a corresponding query on the STAMINVBALANCE object structure.  These queries can be modified as necessary to refine the items due for count.


The queries used by each default count type are as follows:


Count TypeQuery Name
ABC Cycle Countcountccf
Unreconciled Countcountunreconciled
Adhoc Countcount



Note: If you customize these queries, ensure you delete/replace the "Standard:" prefix from the query description.  We recommend you replace "Standard:" with "Custom:" for easy identification.  This will ensure that future Opqo upgrades do not overwrite your customized query definitions. 




Custom Count Types


We recognize that there are many ways that organizations identify the records to count, and so Opqo supports adding custom count types via configuration.


Opqo currently supports the following custom count types:


  • Saved Query: identifies the items to be counted using a custom query on the STAMINVBALANCE object structure.
  • Full Count: Identifies items that have not been counted since a specified start date.  Optionally allows specifying a custom query on the STAMINVBALANCE object structure.


We continue to evaluate additional options for custom count types.  If you have a count process that is currently not met by Opqo, we'd love to talk to you about how we can add support.


Note: Configuring multiple instances of each of the custom count types is supported.  Ensure the name is different to allow your users to easily identify the count they need to perform.


Saved Query Count Type


A Saved Query count type can be added by including a configuration map to the providers section with the following properties:


Property NameValue
moduleSavedQueryCountModule
nameThe display name for the count type in Opqo
savedQueryNameThe name of the query on the STAMINVBALANCE object structure to use to identify the items to count.
removeFromScopeOnCountSet to true to have Opqo remove balances from the user's count list as they are counted, or false to have them remain in the list.

Typically you want to set this to match whether balances fall out of scope of the query as they are counted. For example, this behavior is true for the default ABC Cycle Count, and false for the default Adhoc Count.

This property is optional, and if not specified will default to true.



For example, a configuration with an additional Saved count might look like the following:


appConfig = {
  ...
  "moduleconfig": [
    ...
    {
      "module": "InventoryCountModule",
      "providers": [
        {
          "module": "CountbookCountModule"
        },      
        {
          "module": "AbcCycleCountModule"
        },
        {
          "module": "SavedQueryCountModule",
          "name": "Our custom count",
          "savedQueryName": "customcountquery"
        },
        {
          "module": "UnreconciledCountModule"
        },
        {
          "module": "AdhocCountModule"
        }
      ]
    }
  ]
}


A few notes on specifying the custom query:


  • The query is added via the "Query Definition" action on the STAMINVBALANCE object structure.
  • The most common type of query is to specify the query directly as an osclause, however it can be any valid object structure query type that applies to INVBALANCES mbos.
  • The query should be marked public.
  • The query is used as the base query for items to be counted, and should only include balances that are valid for counting:
    • Staging bins should be excluded.
    • Rotating items should be excluded.
  • The default count query provides a good base to build custom queries upon.



Full Count Count Type


Opqo 23.12.0 adds support for the Full Count count type, which is used for scenarios where the items to count are identified based on a start date.   While this can be achieved using the Saved Query count type by including the start date in the query, this places the date specification in the Opqo configuration for easier management, and provides more flexible options.


A Full Count count type can be added by including a configuration map to the providers section with the following properties:


Property NameValue
moduleFullCountModule
nameThe display name for the count type in Opqo
startDateThe start date for the count.  Items that have not been counted since this date will be included in the list of items to count.

See the notes below on options for specifying this value.
savedQueryNameThe name of the query on the STAMINVBALANCE object structure to use to identify the items to count.

This property is optional, and if not specified, the default count query will be used.



The startDate parameter can be specified as either of the following:

  1. A single datetime value.
  2. A JSON object that is used to identify the appropriate startDate for a storeroom.  This allows different start dates to be specified for different storerooms, to cater for different counting schedules.  Storerooms will be matched to a startDate by matching the keys in the following order:
    • "SITEID:LOCATION" - matches a specific storeroom
    • "LOCATION" - matches storerooms by LOCATION
    • "SITEID" - matches all storerooms for a given site
    • "ORGID" - matches all storerooms for a given organization
    • "*" - matches all storerooms that do not match any of the above.


Note: When the start dates are specified via option 2, above, if a storeroom does not match any of the specified values, the count will not be visible or available in that storeroom.


In all cases, the startDate should be specified in ISO8601 format:

  • YYYY-MM-DD for dates, such as 2023-07-15
  • YYYY-MM-DDTHH:MM±hh:mm for dates and times including the time zone, such as 2023-07-15T16:00-08:00



The example below shows a configuration that adds a Full Count with global start date for all storerooms, and also specifies that the custom query customcountquery should be used:

appConfig = {
  ...
  "moduleconfig": [
    ...
    {
      "module": "InventoryCountModule",
      "providers": [
        {
          "module": "CountbookCountModule"
        },      
        {
          "module": "AbcCycleCountModule"
        },
        {
          "module": "FullCountModule",
          "name": "2023 Q4 Count",
          "savedQueryName": "customcountquery",
          "startDate": "2023-10-01T00:00-05:00"
        },
        {
          "module": "UnreconciledCountModule"
        },
        {
          "module": "AdhocCountModule"
        }
      ]
    }
  ]
}


The example below shows a configuration that adds a Full Count for the CENTRAL storeroom in BEDFORD site.  Note that this count type will only be available in this storeroom, and will not be shown or available in other storerooms.

appConfig = {
  ...
  "moduleconfig": [
    ...
    {
      "module": "InventoryCountModule",
      "providers": [
        {
          "module": "CountbookCountModule"
        },      
        {
          "module": "AbcCycleCountModule"
        },
        {
          "module": "FullCountModule",
          "name": "2023 Q4 Count",
          "startDate": {
            "BEDFORD:CENTRAL": "2023-10-01T08:00-05:00"
          }
        },
        {
          "module": "UnreconciledCountModule"
        },
        {
          "module": "AdhocCountModule"
        }
      ]
    }
  ]
}



The example below shows all of the different options for specifying start dates:

  • One for the CENTRAL storeroom in BEDFORD site
  • One for all storerooms named GARAGE
  • One for all other storerooms in the BEDFORD site
  • One for all storerooms in the EAGLESA organization
  • One for all storerooms not matched by any of the above


appConfig = {
  ...
  "moduleconfig": [
    ...
    {
      "module": "InventoryCountModule",
      "providers": [
        {
          "module": "CountbookCountModule"
        },      
        {
          "module": "AbcCycleCountModule"
        },
        {
          "module": "FullCountModule",
          "name": "2023 Q4 Count",
          "startDate": {
            "BEDFORD:CENTRAL": "2023-10-01T08:00-05:00",
            "GARAGE": "2023-11-01",
            "BEDFORD": "2023-10-15T00:00-08:00",
            "EAGLESA": "2023-11-15",
            "*": "2023-10-01"
          }
        },
        {
          "module": "UnreconciledCountModule"
        },
        {
          "module": "AdhocCountModule"
        }
      ]
    }
  ]
}






If you have questions please do not hesitate to contact us or create a support ticket for more assistance.