Asset Creation - Mobile Agent App

Dillin  Bradley
Tera Expert

I'm looking for some help on the Create Asset function in the mobile app. How can I make its I can Create multiple assets from it rather than just 1

 

I tried a group Input on it with this Execution Script but it is only creating the first asset scanned

 

(function WriteBackAction(input) {

    //Type appropriate comment here, and begin script below

 for (i=0; i< input.add_asset.length; i++){

var assetString = input.add_asset[i]["Asset tag"];

var serialNumber = input.add_asset[i]["Serial number"];

var SMAssetUsage = new global.SMAssetUsage();

SMAssetUsage.addAssetToStockroom(assetString, serialNumber);

 }

})(input);

1 REPLY 1

Dillin  Bradley
Tera Expert

Or should I update the Create Asset execution script? Im unsure what to put to get this working!

 

(function WriteBackAction(input) {
//Type appropriate comment here, and begin script below
// Check that the inputted asset tag and serial number combination doesn't exist
var entered_asset_tag = input.asset_tag;
var entered_serial_number = input.serial_number;
var entered_model = input.model;
//var entered_substate = input.substate;
var entered_stockroom = input.stockroom;

var asset_gr = new GlideRecord('alm_asset');
asset_gr.addQuery('asset_tag', entered_asset_tag);
asset_gr.addQuery('serial_number', entered_serial_number);
asset_gr.query();
// Given that the combination doesn't exist, initialize a new asset record and
// set its parameters appropriately then insert into alm_asset
if(!asset_gr.next()){

// detect the model category of the entered model
var model_gr = new GlideRecord('cmdb_model');
model_gr.get('sys_id', entered_model);
var asset_class = 'alm_asset';

if (!gs.nil(model_gr.cmdb_model_category)) {
var detected_model_category = model_gr.getValue('cmdb_model_category').split(',')[0];
var model_category_gr = new GlideRecord('cmdb_model_category');
model_category_gr.get(detected_model_category);
if (!gs.nil(model_category_gr.asset_class)) {
asset_class = model_category_gr.asset_class;
}
var new_asset_gr = new GlideRecord(asset_class);
new_asset_gr.initialize();
new_asset_gr.asset_tag = entered_asset_tag;
new_asset_gr.serial_number = entered_serial_number;
new_asset_gr.model = entered_model;
new_asset_gr.model_category = detected_model_category;
// Set state as 'in stock' by default, which is equivalent to a value of 6
new_asset_gr.install_status = 6;
new_asset_gr.substatus = "available";
new_asset_gr.stockroom = entered_stockroom;
new_asset_gr.insert();
gs.addInfoMessage(gs.getMessage("Asset created successfully!"));
} else {
gs.error("create_asset: model category for model does not exist!");
gs.addErrorMessage(gs.getMessage("Failed to create asset. The model that was selected has no model category attached to it"));
}
} else {
// Give a message that says why we weren't able to create this particular asset
// (because this particular (asset_tag, serial_number) exists already)
gs.error("create_asset: (asset_tag, serial_number) combination already exists!");
gs.addErrorMessage(gs.getMessage("Failed to create asset. That asset tag, serial number combination already exists!"));
return;
}
})(input);