Good Morning Asset Community and Happy Friday!
I've seen this particular issue crop up from time to time so I thought it might make a good post. The scenario is that you've recently imported a collection of CIs into your CMDB, many of which are in an "In Inventory" status. You open up one of these inventoried assets in Asset Management and attempt to move it to "Deployed," but instead you get an error:
You need to go to Manage Inventory to move the CI out of Inventory. (ARERR 45115)
You go back to the Asset Management Console, click Manage Inventory, and search for the CI. Except its not there. What happened? How do I update my assets without this error?
The "In Inventory" status carries with it special processes that expect certain back-end forms to be populated. Other than the CI itself, there are three things you must consider if you are generating inventoried CIs outside the manual GUI interface:
- Inventory Locations
- Inventory Quantities
You'll notice when you update a CI to a status of "In Inventory" manually, you are prompted to identify an Inventory Location for the asset. An Inventory Location is actually another CI in the CMDB that represents a location where assets are stored in inventory. It can be a warehouse, a room, a shelf, or even a bin. Whatever it is, if you plan to use the inventory functionality you must represent these locations by creating a CI record for them. You can create this by using the "Manage CIs" function from the Asset Management Console, selecting "System->Inventory Location," and then completing the information on the Inventory Location form that displays. You can also import your locations directly into the AST:InventoryStorage form.
Once you've created or identified the Inventory Locations where the assets will be stored, you'll need to generate cooresponding records in the AST:InventoryQuantity form. For simplicity sake let's say you're linking a laptop stored in the Computer System class to a newly created Inventory Location. To create these records you'll either need to enter them manually in the AST:InventoryQuantity form or use the Remedy Data Import tool (or other import method) with the following mappings:
|Name||Name of the Asset||laptop_001|
|Class ID of the Asset|
|User Display Object Name|
CI Type of the Asset
Reconciliation Identity of the Asset
|StorageInstanceID||Instance ID of the Inventory Location||AO12345|
|Company||Name of the Company||Calbro Services|
|StorageClassID||Class ID of the Asset||BMC_INVENTORYSTORAGE|
|Lead Time in Days||Lead Time of Order||0|
|Reorder Level||Quantity when to Reorder||0|
|Suggested Reorder Quantity||How many to Reorder||0|
|Quantity In Stock||Quantity Available||1|
As you may have already noticed you'll need certain information from both the asset and the inventory location. A lot of this particular information cannot be viewed from the AST form OOTB but if you access it's CMDB counterpart, the fields are visible without customization. If you are building several of these records it would be best to run a report of the necessary fields and export the information out of Remedy as opposed to copy and paste. Once these records are generated then you can move on to relationships.
The last record you'll need to create is the CMDB relationship between the Asset and the Inventory Location. This is done in the BMC.CORE:BMC_Dependency form and, like the AST:InventoryQuantity above, you'll need to input these records either manually or through import with the following mappings:
|DatasetId||BMC.ASSET.SANDBOX or other staging dataset|
|Destination.ClassId||Class ID of the Asset (i.e. BMC_COMPUTERSYSTEM)|
|Destination.DatasetId||Dataset of Asset (i.e. BMC.ASSET)|
|Destination.InstanceId||Instance ID of the Asset|
|Destination.ReconciliationIdentity||Reconciliation Identity of the Asset|
|Source.DatasetId||Dataset of Inventory Location (i.e. BMC.ASSET)|
|Source.InstanceId||Instance ID of the Inventory Location|
|Source.ReconciliationIdentity||Reconciliation Identity of the Inventory Location|
After creating these records you will need to run the reconciliation job for the dataset you created them in (BMC.ASSET.SANDBOX in the example above), otherwise you wont be able to see the relationship represented in the asset's Relationship tab.
Once you have the Inventory Locations, the Inventory Quantity records, and the relationships generated, you should be able to update your CI as if it where created by the GUI! I hope this is helpful to some of you and if you have any questions please post them in the comments below.