How to copy one Reference Field Value into another

bammar
Kilo Sage
Kilo Sage

Hello All,

 

This seems so easy on the surface but I have been unable to copy one Reference Field to another ( even the Eureka Actions tab doesnt let you do this when creating a business rule).   I have one reference field ( Approval For)   that has a value in it. I can pull the value and even display it as message. However I can not populate this value into another reference field ( Change Number)     leaving me to have to type it in. Both fields reference the the Change task list,   I would love it if someone could show us very simply how to extract from field A and input into field B.   I know reference fields rely on things like Display Values and sys_ids. I have tried every combination of methods and tried using   getDisplayValue()); to get the original Value and   g_form.setValue to   as well as scowering the wiki /community . Thank you in Advance, there are many applications for why anyone would need to do this , this is just one of them.

 

 

BR - After, on insert or update of approval form

findChange();

 

function findChange() {

 

  var ri = new GlideRecord("sysapproval_approver");

 

    ri.get('sys_id', current.sysapproval);

 

//this does display the correct value when I save the form.

  gs.addInfoMessage(current.sysapproval.getDisplayValue());

 

// trying to get an acceptable value for which I can pass into set the   destination field , this is unsuccessfull

 

var change =   current.sysapproval.getDisplayValue();

   

            g_form.setValue( 'u_change', change);

 

 

}

1 ACCEPTED SOLUTION

Kalaiarasan Pus
Giga Sage

Why do you have 2 fields for same table?   Doesn't make sense to me



current.sysapproval.toString() // this will give sys id


current.sysapproval.getDisplayValue() will give.the display value of reference field. Number in this case


View solution in original post

15 REPLIES 15

Michael Fry1
Kilo Patron

Just an FYI, you can't use g_form in a business rule. You have to use current.



If I understand this, on your business rule, set a condition of: current.approval_for.changes() && current.approval_for != ''


then your script would be: current.change_number = current.approval_for;



This assume the two fields, Approval for & Change number reference the same table.


Hello Michael,



It appears current.change_number = current.approval_for would be possible if they were not both reference fields. sys id is involved.


Hi Michael,



That did appear to help, i just had to strip out all the rest of my code,


salvadormarchan
Kilo Guru

Try the dot walk approach.


(Can you please elaborate clearly which exact fields and tables are involved?)