Don't like ads? PRO users don't see any ads ;-)
Guest

Link Service Stack to Application

By: sidetrak on May 1st, 2012  |  syntax: JavaScript  |  size: 1.94 KB  |  hits: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*
  2. Name: Link Service Stack to Application
  3. Table: Service Stack Application [u_service_stack_application]
  4. When: after
  5. Insert: true
  6. Update: true
  7.  */
  8. createRelationship();//check for relationship and create one if none found
  9.  
  10. function createRelationship() {
  11.    var site = new GlideRecord(current.u_search_table);
  12.    site.addQuery(current.u_search_field, current.u_search_text);
  13.    site.addQuery(current.u_conditions);
  14.    site.query();
  15.    while(site.next()) {
  16.       var rel1 = new GlideRecord('cmdb_rel_ci');//check for existing relationships
  17.       rel1.addQuery('child.sys_id', site.sys_id);
  18.       rel1.addQuery('parent.sys_id', current.u_service_stack.sys_id);
  19.       rel1.query();
  20.       if(!rel1.next()) {
  21.          gs.addInfoMessage('Creating Relationship for ' + current.u_search_text);
  22.          var newRel = new GlideRecord('cmdb_rel_ci');//create relationship with specified type
  23.          newRel.initalize();
  24.          newRel.parent = current.u_service_stack.sys_id;
  25.          newRel.child = site.sys_id;
  26.          newRel.type = current.u_relationship_type;
  27.          newRel.insert();
  28.          //if Service Stack Application specifies parent field, create additional relationship
  29.          if(!current.u_parent_ci_field.nil()){
  30.             var rel2 = new GlideRecord('cmdb_rel_ci');//check for existing relationships
  31.             rel2.addQuery('child.sys_id', eval('site.' + current.u_parent_ci_field).sys_id);
  32.             rel2.addQuery('parent.sys_id', site.sys_id);
  33.             rel2.query();
  34.             if(!rel2.next()) {
  35.                var newParentRel = new GlideRecord('cmdb_rel_ci');//create relationship with specified type
  36.                newParentRel.initalize();
  37.                newParentRel.parent = site.sys_id;
  38.                newParentRel.child = eval('site.' + current.u_parent_ci_field).sys_id;
  39.                newParentRel.type = current.u_relationship_type;
  40.                newParentRel.insert();
  41.             }
  42.          }
  43.       }
  44.    }
  45. }