I would like to have an integration to pull the data from an external source
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-02-2025 09:57 AM
Hi All,
I am trying to create integration between application asset note And servicenow. I am trying to pull the data in discovered Item table but getting error 520 in that. below is my script include.
var AssetnoteAssetHandler = Class.create();
AssetnoteAssetHandler.DOMAIN_CLASS_NAME = "cmdb_ci_dns_name";
AssetnoteAssetHandler.IP_CLASS_NAME = "cmdb_ci_ip_address";
AssetnoteAssetHandler.DISCOVERY_SOURCE = gs.getProperty("assetnote.cmdb.discovery_source");
AssetnoteAssetHandler.PLACEHOLDER_CI = "Assetnote-IPAddresses";
AssetnoteAssetHandler.prototype = {
initialize: function() {},
processAssetResponse: function(response) {
for (var i = 0; i < response.data.assets.edges.length; i++) {
var host = response.data.assets.edges[i].node.host;
var type = response.data.assets.edges[i].node.__typename;
var id = response.data.assets.edges[i].node.id;
var ipAddress = response.data.assets.edges[i].node.ipAddress;
var humanName = response.data.assets.edges[i].node.humanName;
/*if (type == "SubdomainAsset") {
var payload = {
"items": [{
"className": AssetnoteAssetHandler.DOMAIN_CLASS_NAME,
"lookup": [],
"values": {
"correlation_id": id,
"ip_address": ipAddress,
"name": host
}
}],
"relations": []
};
} else {
var payload = {
"items": [{
"className": AssetnoteAssetHandler.IP_CLASS_NAME,
"lookup": [],
"values": {
"correlation_id": id,
"ip_address": host,
"netmask": this.CIDR2Netmask(humanName.toString().split('/')[1])
}
},
{
"className": "cmdb_ci_server",
"lookup": [],
"values": {
"name": AssetnoteAssetHandler.PLACEHOLDER_CI
}
}
],
"relations": [{
"type": "Owns::Owned by",
"parent": 1,
"child": 0
}]
};
}
if (payload) {
var input = JSON.stringify((payload));
var output = sn_cmdb.IdentificationEngine.createOrUpdateCIEnhanced(AssetnoteAssetHandler.DISCOVERY_SOURCE, input, {});
//gs.info(JSON.stringify(JSON.parse(output), null, 2));
var jsonOutput = JSON.parse(output);
var operation = jsonOutput.items[0].operation;
if (operation == "INSERT" || operation == "UPDATE" || operation == "NO_CHANGE") {
//do nothing
} else {
return output;
}
}*/
var grint = new GlideRecord('sn_sec_int_impl');
grint.addQuery('name', 'Assetnote');
grint.query();
var sourceSysId;
if (!grint.next()) {
var grin = new GlideRecord('sn_sec_int_impl');
grin.initialize();
grin.name = 'Assetnote';
grin.integration = 'Assetnote';
sourceSysId = grin.insert();
gs.info('id'+ sourceSysId);
} else {
sourceSysId = grint.getUniqueValue();
gs.info('id'+ sourceSysId);
}
gs.info('keshav94');
var gtdt = new GlideRecord('sn_sec_cmn_src_ci');
gtdt.addQuery('source_id', id);
gtdt.query();
if (!gtdt.next()) {
var dt = new GlideRecord('sn_sec_cmn_src_ci');
dt.initialize();
dt.source_id = id;
dt.source = sourceSysId;
dt.u_hostname_from_scanner = host;
dt.u_ipaddress_from_scanner = ipAddress;
dt.insert();
gs.info('[Assetnote] Inserted new sn_sec_cmn_src_ci record for source_id: ' + id);
} else {
gs.info('[Assetnote] sn_sec_cmn_src_ci record already exists for source_id: ' + id);
}
}
return 'COMPLETED';
},
CIDR2Netmask: function(bitCount) {
var mask = [];
for (var i = 0; i < 4; i++) {
var n = Math.min(bitCount, 8);
mask.push(256 - Math.pow(2, 8 - n));
bitCount -= n;
}
return mask.join('.');
},
type: 'AssetnoteAssetHandler'
};
0 REPLIES 0