"Missing semicolon" compile error on a script

arnoldzwane
Kilo Contributor

I am getting a "Missing semicolon" compile error on line 10 "If (gen.u_gen_cpu_name == ci.cpu_name){" of my script below: 

//get CIs
var ci = new GlideRecord('cmdb_ci_computer');
ci.query();
while (ci.next()) {
   //get the Generation record for this CI (only one record)
   var gen = new GlideRecord("u_cpu_generation");
   gen.addQuery("ci",ci.sys_id.toString());
   gen.query();
   while (gen.next()){
      If (gen.u_gen_cpu_name == ci.cpu_name){
         ci.u_cpu_generation = gen.u_gen_cpu_generation;
         ci.u_processor_windows_10_capable = gen.u_processor_windows_10_capable;
      }
      ci.setWorkflow(false);
      ci.update();
   }
}

When I put it (even though I don't understand why would it need a semicolon on the 'if" statement) the error goes away but the script doesn't do what I expect it to do.

Could someone please assist. I just need to update the two fields, u_cpu_generation and u_processor_windows_10_capable on the Computer table, with data from the u_cpu_generation table. You are welcome to suggest changes on my script, that will enable me to achieve the desired result - still a learner in scripting!

1 ACCEPTED SOLUTION

Ashutosh Munot1
Kilo Patron
Kilo Patron

Hi,


Please see below code:

var ci = new GlideRecord('cmdb_ci_computer');
ci.query();
while (ci.next()) {
   
   var gen = new GlideRecord("u_cpu_generation");
   gen.addQuery("u_gen_cpu_name",ci.cpu_name.toString()); // Hope these fields have same data type.
   gen.query();
   if(gen.next()){
      gs.log('Entering','Check');//Check if this log is coming or not.
         ci.u_cpu_generation = gen.u_gen_cpu_generation;
         ci.u_processor_windows_10_capable = gen.u_processor_windows_10_capable;
         ci.update();
   }
}

 

Thanks,
Ashutosh Munot

View solution in original post

11 REPLIES 11

Ashutosh Munot1
Kilo Patron
Kilo Patron

HI,


Can you try if instead of If.

 

Thanks,

Ashutosh

Thank you very much Ashutosh; it indeed resolved the semicolon issue.

At least I will now tackle the next issue, which is the actual update that I want to achieve - it still doesn't update the two fields but I am suspecting my query line "gen.addQuery("ci",ci.sys_id.toString());". Does it make sense to you?

Kind Regards

Arnold  

 

Hi,

 

Use gen.addQuery("ci",ci.sys_id);

 

Thanks,

Ashutosh

 

Please Mark Answer as correct/Helpful if it helped.

 

Hi Ashutosh,

It didn't work. I even tried gen.addQuery("u_gen_cpu_name",ci.cpu_name); to no success. I tried this because cpu_name on Computer table is the same as u_gen_cpu_name from the other table. Don't know what to do anymore....

Kind Regards

Arnold