Warranty integration with Dell Tech Direct

Tharun_346
Tera Contributor

Hello ALL,

I am looking to integrate with Dell Tech Direct, to get the warranty information in SNOW. Activated the Warranty API

From Dell Tech Direct! & received the required information (Client ID, Secret value),

In SNOW created a Outbound REST Message by filling required details.

Endpoint

HTTP Query parameters

HTTP Request

After the configuration, when i tested in SNOW, I am getting the below error.

Can Please guide me, what is the possible reason for this.

error message.png

 

4 REPLIES 4

Bob Hage
Tera Expert

I just set this up for a client. 

Create an oAuth registry entry to retrieve API key.

Set authentication on the Outbound REST to use the registry entry created above.

Tharun_346
Tera Contributor

Hello Bob Hage,

I was able to connect to the API, And getting the response, However from the response unable to fetch 'endDate'.

below is the script, which i am trying to fetch the endDate. PFA for the response.

(function executeRule(current, previous /*null when async*/ ) {
var st = current.serial_number.toLowerCase();
try {
var r = new sn_ws.RESTMessageV2('Warranty Tech Direct', 'Default GET');
r.setStringParameterNoEscape('servicetags', st);
r.setQueryParameter('apikey', gs.getProperty('DellTechDirectKey'));
r.setHttpTimeout(10000);
r.setEccParameter('skip_sensor', true);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
gs.info("Status = " + httpStatus);
gs.info("Response Body = " + responseBody);

if (httpStatus == '200') {
var responseObj = JSON.parse(responseBody);
var edate = responseObj.endDate.toString();
current.warranty_expiration = edate;
} else {

gs.addErrorMessage('Looks like we ran into a problem. HTTP status: ' + httpStatus);
}
} catch (ex) {
var message = ex.getMessage();
}
})(current, previous);

 

 

 

There are several warranty contracts returned from Dell. Here is a snipit of the code I used to identify each of the contract end dates. I built a Warranty contract for each unique entry returned in the array and then added the asset to the Assets Covered related list for that contract.

 

var ent = JSON.parse(responseBody);
    for (i = 0; i < ent[0].entitlements.length; i++) {
        var endDate = ent[0].entitlements[i].endDate.substring(0, 10);
        var startDate = ent[0].entitlements[i].startDate.substring(0, 10);
        var cntNbr = ent[0].entitlements[i].itemNumber + ' ' + startDate + '_' + endDate;
        var myCnt = '';

        var cnt = new GlideRecord('ast_contract');
        if (cnt.get('vendor_contract', cntNbr)) {
            myCnt = cnt.sys_id + '';
        } else {
            cnt.newRecord();
            var desc = "itemNumber: " + ent[0].entitlements[i].itemNumber + "\n";
            desc += 'startDate: ' + ent[0].entitlements[i].startDate + "\n";
            desc += 'endDate: ' + ent[0].entitlements[i].endDate + "\n";
            desc += 'entitlementType: ' + ent[0].entitlements[i].entitlementType + "\n";
            desc += 'serviceLevelCode: ' + ent[0].entitlements[i].serviceLevelCode + "\n";
            desc += 'serviceLevelDescription: ' + ent[0].entitlements[i].serviceLevelDescription + "\n";
            desc += 'serviceLevelGroup: ' + ent[0].entitlements[i].serviceLevelGroup + "\n";
            cnt.contract_model.setDisplayValue('Warranty');
 
            // This will need to be changed to match your vendor
            cnt.vendor.setDisplayValue('Dell Marketing'); 
 
            cnt.vendor_contract = cntNbr;
            cnt.short_description = ent[0].entitlements[i].serviceLevelDescription;
            cnt.starts = startDate;
            cnt.ends = endDate;
            cnt.description = desc;
            myCnt = cnt.insert();
       }
        var assetsCovered = new GlideRecord('clm_m2m_contract_asset');
        var myAsset = current.sys_id + '';
        assetsCovered.addEncodedQuery('contract=' + myCnt + '^asset=' + myAsset);
        assetsCovered.query();
        if (!assetsCovered.next()) {
            assetsCovered.newRecord();
            assetsCovered.contract = myCnt;
            assetsCovered.asset = myAsset;
            assetsCovered.insert();
        }
    }

 

Satish9
Tera Contributor

Hello Bob, I am running into the some issues setting up the Oauth registry; My screenshot is below

dell.png

When I try "Get OAuth token" ; I get below error; Pls help !

oauth.png