Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This method is used for passing parameters a parameter by reference either to JavaScript functions or with pjs.call().

When using pjsusing pjs.call(), the use of pjsof pjs.refParm() is  is optional. When a declared field is passed as a parameter to pjsto pjs.call(), it is automatically converted to use pjsuse pjs.refParm() internally internally. The explicit use of pjsof pjs.refParm() may  may be more efficient in some cases.

Parameters

  1. Name fieldName - The name of the field to pass. The field must already be defined using pjs.define(). Only one field can be passed to pjs.refParm() at a time.

Return Value

An object that is used to pass the value by reference.

RPG Equivalent

PARM

Examples

Code Block
languagejs
themeConfluence
titleCall an IBM i Program with By-Reference Parameter
collapsetrue
// Define fields using pjs.define(). 
pjs.define("myFieldmyField1", {type: "packed decimal", length: 7, decimals: 2}); 
pjs.define("myField2", {type: "packed decimal", length: 8, decimals: 3}); 
pjs.define("myField3", {type: "packed decimal", length: 12, decimals: 5});


// Call using default parameter wrap, pjs.refParm(). 
pjs.call('mypgm1', myField1);


// Call using explicit parameter wrap, pjs.refParm(). 
pjs.call('mypgmmypgm1', pjs.refParm("myField"));
// the statement above is equivalent tomyField1"));

 

Code Block
languagejs
titleCall an IBM i Program with By-Reference Parameter
collapsetrue
// Define fields using pjs.define(). 
pjs.define("myField1", {type: "packed decimal", length: 7, decimals: 2}); 
pjs.define("myField2", {type: "packed decimal", length: 8, decimals: 3}); 
pjs.define("myField3", {type: "packed decimal", length: 12, decimals: 5}); 
  
// Call using default parameter wrap, pjs.refParm(). 
pjs.call('mypgmmypgm2', myField); myField1, myField2, myField3); 


// Call using explicit parameter wrap, pjs.refParm(). 
pjs.call('mypgm2', pjs.refParm("myField1"), pjs.refParm("myField2"), pjs.refParm("myField3"));


Code Block
languagejavascriptjs
titleCall a function JavaScript Function with a By-Reference Parameter
collapsetrue
// Define function double() that will receive a by reference parameter to multiply by two. 
function double(number) { 
  // Define temporary field number as type float. 
  pjs.define("number", { type: 'float', length: 8, refParm: number });   
  // Double value of number. 
  number = number * 2;   
  // Because the field is by-reference, there is no need for a return statement. 
} 
// Define myNum field as type float. 
pjs.define("myNum", { type: 'float', length: 8, initValue: 10 }); double(pjs.refParm("myNum"));  
// The initial value of 10 of myNum is becomeschanged to 20 after thisthe linefunction executes

 

RPG Equivalent

...

. 
double(pjs.refParm("myNum"));