Our consultants are reguarly on the front line collecting up-to-date customer requirements and wish-lists. We actively encourage them to share this knowledge and find time to articulate this into a regular blog. Please feel free to comment or ask relevant questions or open a debate with us.
In this Article I'm going to explain how to use the new DELL API to get Warranty information and add it to your Assets in the SMP.
First you will need to sign up to get access to the DELL API
There’s a powerpoint in the 'get started' section with an excel sheet embedded, that you will need to fill out to request API access.
Complete that, send it off then wait to hear back with your API Key.
Once you have that check out the DELL API page:
Now for the config.
Create a new Data Class in the SMP to store the information retrieved from the API.
Settings | Notification Server | Resource and Data Class Settings | Data Classes | _Protirus |
|Simple Warranty||String||Text to describe how this detail was achieved. e.g. Dell Warranty Import Workflow|
Then you need to link it to a Computer/Asset Resource via settings.
Settings | Notification Server | Resource and Data Class Settings | Resource Types | Asset Types | Generic Asset Types
Scroll down to Data Classes, click "Add data classes" and search for the new one.
You might only want to store this information on a particular type of Resource so this can be modified, if necessary.
You'll need 7.6+ as we are going to be using the REST Generator.
See my other Articles for more information.
The great thing about the REST Generator is it will create the DataTypes we need for the Warranty info, we only need a couple of fields but they are all there for future requirements.
We are going to be using the AssetEntitlementData in combination with ServiceLevelDescription.
There are some requirements when using the API including how often you can query the dataset and how many machines you can ask for.
5.3 API Access Criteria
5.3.1 Scheduled or Automated Retrieval of Warranty Information
To avoid undue load on the Warranty Status API server, the following algorithm should be followed for scheduling or automating warranty retrievals:
- Query warranty API once for all new devices.
- Query warranty API every 60-days for devices that have warranties expiring outside 1 year window.
- Query warranty API every 30-days for devices that have warranties expiring inside a +/- 1 year window.
- Query API every 15-days for warranties expiring between 45 to 90 days.
- Query API weekly for warranties expiring between 30 to 45 days.
- Query API daily for warranties expiring between -10 to 30 days.
- Query API every 30 days for warranties expiring between -10 to -60 days.
- Do not query for warranties for devices that have warranty expired more than 60 days.
- Code Mapper Service need to be looked up only for new countries.
You are also required to perform some tests and supply a list of results to confirm you have understood how to use the API and that you are using it correctly. We created a Web Forms Project to test and provide this data.
The first step when creating the main WFs is to get a list of Assets with their ServiceTags.
You could build a View for this, amend to suit your needs,
SELECT DISTINCT a.Guid AS AssetGuid ,a.NAME AS AssetName ,rt.Guid AS ResourceTypeGuid ,rt.NAME AS ResourceTypeName ,COALESCE(hwcs.[Identifying Number], whc.[Serial Number]) AS [Identifying Number] ,sw.[Warranty Until] ,DATEDIFF(DAY, GETDATE(), sw.[Warranty Until]) AS NumOfDays ,sw.LastCheckedDate ,DATEDIFF(DAY, GETDATE(), sw.LastCheckedDate) AS LastCheckedDiff --,m.Manufacturer --,hwld.[Description] FROM vRM_Asset_Item AS a INNER JOIN ResourceType AS rt ON rt.Guid = a.ResourceTypeGuid --INNER JOIN Inv_Manufacturer m ON m._ResourceGuid = a.Guid LEFT OUTER JOIN Inv_HW_Computer_System AS hwcs ON hwcs._ResourceGuid = a.Guid LEFT OUTER JOIN Inv_HW_Chassis AS whc ON whc._ResourceGuid = a.Guid LEFT OUTER JOIN Inv_Simple_Warranty AS sw ON sw._ResourceGuid = a.Guid LEFT OUTER JOIN Inv_HW_Logical_Device AS hwld ON hwld._ResourceGuid = a.Guid WHERE --m.Manufacturer LIKE '%Dell%' OR hwld.[Description] LIKE '%Dell%'
Now that we have a list we want to filter it on the requirements above. We can use a Configurable Collection Filter for this.
Next group them by sets of 50 and join the serial numbers together with Build Text From Elements.
Call the API and use the dataset returned.
We can now map the data to the SMP Resource and save.
This we created using a Monitoring Project so we could set it on a schedule and leave it to run in a given interval.
If you'd like a copy of this do get in touch firstname.lastname@example.org
The captcha on the website can cause issues.