Skip to content

Commit 5c3467f

Browse files
Create ModelManufacture.js
1 parent 9636417 commit 5c3467f

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
var modelName = source.u_model;
2+
var manufacturerName = source.u_manufacturer;
3+
4+
function getOrCreateModel(modelName, manufacturerName) {
5+
try {
6+
var manufacturerSysId = getOrCreateManufacturer(manufacturerName);
7+
if (!manufacturerSysId) {
8+
gs.error("MODEL SCRIPT: Failed to find or create manufacturer: " + manufacturerName);
9+
return null;
10+
}
11+
12+
// Query cmdb_model to check if any existing model (including child tables) exists
13+
var modelGr = new GlideRecord('cmdb_model');
14+
modelGr.addQuery('name', modelName);
15+
modelGr.addQuery('manufacturer', manufacturerSysId);
16+
modelGr.query();
17+
18+
if (modelGr.next()) {
19+
gs.info("MODEL SCRIPT: Found existing model: " + modelGr.getUniqueValue());
20+
return modelGr.getUniqueValue();
21+
} else {
22+
// Create in child table: cmdb_hardware_product_model
23+
var newModel = new GlideRecord('cmdb_hardware_product_model');
24+
newModel.initialize();
25+
newModel.setValue('name', modelName);
26+
newModel.setValue('manufacturer', manufacturerSysId);
27+
var newModelSysId = newModel.insert();
28+
29+
if (newModelSysId) {
30+
gs.info("MODEL SCRIPT: Created new hardware model: " + newModelSysId);
31+
return newModelSysId;
32+
} else {
33+
gs.error("MODEL SCRIPT: Failed to insert new model for " + modelName);
34+
return null;
35+
}
36+
}
37+
} catch (e) {
38+
gs.error("MODEL SCRIPT: Error in getOrCreateModel(): " + (e.message || e));
39+
return null;
40+
}
41+
}
42+
43+
function getOrCreateManufacturer(name) {
44+
try {
45+
var companyGr = new GlideRecord('core_company');
46+
companyGr.addQuery('name', name);
47+
companyGr.query();
48+
49+
if (companyGr.next()) {
50+
gs.info("MODEL SCRIPT: Found manufacturer: " + companyGr.getUniqueValue());
51+
return companyGr.getUniqueValue();
52+
} else {
53+
companyGr.initialize();
54+
companyGr.setValue('name', name);
55+
//companyGr.setValue('manufacturer', true); // Ensure it’s marked as manufacturer
56+
var newMfrSysId = companyGr.insert();
57+
58+
if (newMfrSysId) {
59+
gs.info("MODEL SCRIPT: Created new manufacturer: " + newMfrSysId);
60+
return newMfrSysId;
61+
} else {
62+
gs.error("MODEL SCRIPT: Failed to insert new manufacturer: " + name);
63+
return null;
64+
}
65+
}
66+
} catch (e) {
67+
gs.error("MODEL SCRIPT: Error in getOrCreateManufacturer(): " + (e.message || e));
68+
return null;
69+
}
70+
}

0 commit comments

Comments
 (0)