
Link Service Stack to Application
By:
sidetrak on
May 1st, 2012 | syntax:
JavaScript | size: 1.94 KB | hits: 22 | expires: Never
/*
Name: Link Service Stack to Application
Table: Service Stack Application [u_service_stack_application]
When: after
Insert: true
Update: true
*/
createRelationship();//check for relationship and create one if none found
function createRelationship() {
var site = new GlideRecord(current.u_search_table);
site.addQuery(current.u_search_field, current.u_search_text);
site.addQuery(current.u_conditions);
site.query();
while(site.next()) {
var rel1 = new GlideRecord('cmdb_rel_ci');//check for existing relationships
rel1.addQuery('child.sys_id', site.sys_id);
rel1.addQuery('parent.sys_id', current.u_service_stack.sys_id);
rel1.query();
if(!rel1.next()) {
gs.addInfoMessage('Creating Relationship for ' + current.u_search_text);
var newRel = new GlideRecord('cmdb_rel_ci');//create relationship with specified type
newRel.initalize();
newRel.parent = current.u_service_stack.sys_id;
newRel.child = site.sys_id;
newRel.type = current.u_relationship_type;
newRel.insert();
//if Service Stack Application specifies parent field, create additional relationship
if(!current.u_parent_ci_field.nil()){
var rel2 = new GlideRecord('cmdb_rel_ci');//check for existing relationships
rel2.addQuery('child.sys_id', eval('site.' + current.u_parent_ci_field).sys_id);
rel2.addQuery('parent.sys_id', site.sys_id);
rel2.query();
if(!rel2.next()) {
var newParentRel = new GlideRecord('cmdb_rel_ci');//create relationship with specified type
newParentRel.initalize();
newParentRel.parent = site.sys_id;
newParentRel.child = eval('site.' + current.u_parent_ci_field).sys_id;
newParentRel.type = current.u_relationship_type;
newParentRel.insert();
}
}
}
}
}