数値, 乱数生成
数値, 乱数生成 (Number, Generate Random)

乱数を生成します。案件トークンがこの自動工程に到達すると、都度、指定範囲内の数値が生成されます。小数点以下はワークフローのデータ定義に応じて0へ近づく方向で切り捨てられます。

2019-11-13 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/number-generate-random/

Configs
  • A: 下限値をセットしてください (例 “0”, “-2.5”) * #{EL}
  • B: 上限値をセットしてください (例 “10”, “2.5”) * #{EL}
  • C: 生成された乱数が格納される数値型データを選択してください (更新) *
Script
// (c) 2019, Questetra, Inc. (the MIT License)

//////// START "main()" ////////
main();
function main(){ 


//// == Config Retrieving / 工程コンフィグの参照 ==
const lower   = configs.get( "conf_Lower"   ) + ""; // config required
const upper   = configs.get( "conf_Upper"   ) + ""; // config required
const dataIdC = configs.get( "conf_DataIdC" ) + ""; // config required
// 'java.lang.String' (String Obj) to javascript primitive 'string'

// Design-time Config Format Check
const numLower = parseFloat( lower );
engine.log( " AutomatedTask Lower Limit: " + numLower );
const numUpper = parseFloat( upper );
engine.log( " AutomatedTask Upper Limit: " + numUpper );
if( isNaN(numLower) ){
  throw new Error( "\n AutomatedTask ConfigError:" +
                   " Config {Lower} is not a number \n" );
}
if( isNaN(numUpper) ){
  throw new Error( "\n AutomatedTask ConfigError:" +
                   " Config {Upper} is not a number \n" );
}
if( numLower > numUpper ){
  throw new Error( "\n AutomatedTask ConfigError:" +
                   " Config {Lower} is greater than {Upper} \n" );
}


//// == Data Retrieving / ワークフローデータの参照 ==
// nothing (This Service Task is a CREATE type)


//// == Calculating / 演算 ==
let numDiff  = numUpper - numLower;
let mathRand = Math.random(); // Math.random(): 0.00 to 0.99
engine.log( " AutomatedTask Math.random(): " + mathRand );
let numRand  = mathRand * numDiff + numLower;
engine.log( " AutomatedTask Generated Random: " + numRand );


//// == Data Updating / ワークフローデータへの代入 ==
engine.setDataByNumber( dataIdC, new java.math.BigDecimal( numRand ) );


} //////// END "main()" ////////

Download

Capture

Notes

  1. 範囲を0~10に設定すると、0.00~9.99…の数値が生成されます
  2. もし「文字列として乱数」が必要な場合、『文字列, パスワード生成』の利用も検討します。(0始まり等)
  3. 下限値・上限値の書式は JavaScript の “parseFloat()” 関数に依ります

See also

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。