// GraalJS Script (engine type: 2)
// (c) 2021, Questetra, Inc. (the MIT License)
// About "serialize" or "Query String"
// - see https://api.jquery.com/serialize/
//////// START "main()" ////////
main();
function main(){
//// == Config Retrieving / 工程コンフィグの参照 ==
const dataIdA = configs.get( "conf_DataIdA" ) + "";
const dataIdC = configs.get( "conf_DataIdC" ) + "";
const paramName = configs.get( "conf_ParamName" ) + "";
// 'java.lang.String' (String Obj) to javascript primitive 'string'
//// == Data Retrieving / ワークフローデータの参照 ==
const queryString = engine.findDataByNumber( dataIdA ) + "";
//// == Calculating / 演算 ==
let paramValue = getParam(paramName, queryString);
//// == Data Updating / ワークフローデータへの代入 ==
if(paramValue === null){
throw new Error( 'PARAMETER "' + paramName + '" is not found.' );
}
if( engine.findDataDefinitionByNumber( dataIdC ).matchDataType( "DECIMAL" ) ){
var returnValue = parseFloat( paramValue );
engine.setDataByNumber( dataIdC, new java.math.BigDecimal(returnValue) );
}else{
engine.setDataByNumber( dataIdC, paramValue );
}
} //////// END "main()" ////////
function getParam(name, querystr) {
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^]*)|&|#|$)");
var results = regex.exec(querystr);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}