Inventory Management Options
The following sections show you how to control processes and set plugins and options for inventory management in Bravura Identity .
All plugins are located in <instance>\plugin\. Only the executable name is required in appropriate fields.
Checking inventory levels
You can configure the checkstock plugin program to run a nightly check on the number of inventory items available for provisioning. Inventory items are associated with templates and defined by item type and location. If inventory associated with a particular template falls below a certain level, Bravura Identity notifies the responsible inventory managers. If no inventory managers are set up, Bravura Identity emails the default administrator configured by the RECIPIENT EMAIL setting .
Set the CHECK INVENTORY PLUGIN option (Inventory > Options) to use checkstock.exe.
This program uses a simple configuration file to define the threshold for each template. The checkstock.cfg file is written in the format:
< templateID > < threshold >
For example:
id_ny 100 pda_inv 50 phone_ext 20
This means the inventory manager responsible for items associated with template id_ny is notified when stocks fall below 100.
Managing inventory lists on an external source
Bravura Identity maintains a list of inventory items in its database. You can also write a plugin to maintain the list on an external source.
To use an external inventory plugin:
Click Manage the system > Inventory > Options .
Type the name of the plugin in the EXT INVENTORY PLUGIN field.
Click Update at the bottom of the page.
There is no shipped plugin in use with this plugin point. A sample, testinv.exe , is included in the distribution debug directory. This sample plugin uses an input file, testinv.txt , which is also in the debug directory.
Requirements
It is recommended that the plugin be written in PSLang, which has functions to automatically deal with the input and output protocol (KVGroups). The plugin must be placed in the \<instance>\plugin\ directory. See Writing plugins for general requirements.
Execution points
This plugin is run by the Manage the system (PSA) module, Help users (IDA) module, and View and update profile (IDR) module, and by the idwfm service.
Input
The plugin receives information from a change request or query.
The plugin performs the action specified by the input KVGroup. For example:
Count all available tokens in Calgary:
"request" "" = { "action" = "count" "expr" "AND" = { "LOCATION" = "CALGARY" "STATE" = "N" "TYPE" = "TOKEN" "USER" = "" } }Read all inventory items:
"request" "" = { "action" = "read" "expr" "AND" = { } }Read details for a specific inventory item:
"request" "" = { "action" = "read" "expr" "AND" = { "ID" = "A00001" "TYPE" = "TOKEN" } }Update an inventory item:
"request" "" = { "action" = "update" "attributes" = "" = { "BATCHID" = "20050823-131544-00" "DESC" = "some description" "HOSTID" = "ACE" "ID" = "A00001" "ITEMID" = "4f00000000000000ff" "LOCATION" = "CALGARY" "NOTES" = "some notes" "STATE" = "N" "TYPE" = "TOKEN" "USER" = "ABBEYBR" } }The "add" and "update" input KVGroup are similar.
The keys are defined as follows:
actionPerforms one of the following actions on the inventory item listed in the external source:addAdds the item to list of available itemsupdateUpdates properties associated with the itemdeleteRemoves the item from the list of available itemsreadFinds and displays information about all items with matching attributescountReturns a count of items with matching attributes
exprContains the expression for searchingSearch fields and their values are indicated by key-value pairs. The group name is one of:
ANDthe search matches on all key-value pairsORthe search matches on any key-value pair
Sub-expressions are formed by multiple, nested "expr" KVGroups.
attributesProperties to add or update on the external source.BATCHIDThe request batch IDDESCThe item descriptionHOSTIDThe inventory target IDIDThe item identifierITEMIDA unique identifier used internally by Bravura IdentityLOCATIONMust be a valid location in Bravura IdentityNOTESText entered in the Notes fieldSTATEThe inventory item statePossible states are:
NAvailableVUnavailableRReservedUUndeliveredAAssignedOOutstanding
USERThe user to whom the item is assigned
Output
If the operation was successful, the plugin returns a result value of success
For an add/update/delete operation, only the result key is used. For example:
"response" "" = {
"result" = "success"
}On failure, an error message is returned:
"response" "" = {
"result" = "Could not contact database"
}For a successful count action, the plugin returns something like:
"response" "" = {
"count" = "4"
"result" = "success"
}For a failed count action, the plugin returns an error message:
"response" "" = {
"count" = ""
"result" = "No such item"
}Output for a successful read action includes a KVGroup for each item found. For example:
"response" = {
"result" = "success"
"object" "" = {
"BATCHID" = ""
"DESC" = ""
"HOSTID" = "ACE"
"ID" = "A00011"
"ITEMID" = ""
"LOCATION" = "CALGARY"
"NOTES" = ""
"STATE" = "U"
"TYPE" = "TOKEN"
"USER" = "ADAMSBO"
}
"object" "" = {
"BATCHID" = ""
"DESC" = ""
"HOSTID" = "NULL"
"ID" = "A00021"
"ITEMID" = ""
"LOCATION" = "LA"
"NOTES" = ""
"STATE" = "R"
"TYPE" = "TOKEN"
"USER" = "ADAMSBO"
}
}Inventory items which do not have a valid type or location attribute are ignored by the plugin.
Configuring inventory event actions
Inventory-related events can trigger external notification programs.
The following inventory options can be accessed from Manage the system > Maintenance > System variables or Manage the system > Inventory > Options :
See Event actions for more information.