123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571 |
- /*
- IBM Confidential
- OCO Source Materials
- IBM Cognos Products: rs
- (C) Copyright IBM Corp. 2017, 2020
- The source code for this program is not published or otherwise divested of its trade secrets, irrespective of what has been deposited with the U.S. Copyright Office.
- */
- define([], function(){
- 'use strict';
- //F_XMLEncode
- function xmlEncode(v_sString) {
- // < for <
- // > for >
- // & for &
- // ' for ' (required for attribute values delimited by the same character)
- // " for " (required for attribute values delimited by the same character)
- return v_sString.replace( /&/g, "&" ).replace( /</g, "<" ).replace( />/g, ">" ).replace( /'/g, "'" ).replace( /"/g, """ );
- }
- function addClassicViewerPrompts(v_elForm, v_aPromptParameters) {
- //Simple prompt values: p_Product = Bear+Edge
- for(var i=0; i< v_aPromptParameters.length; i++)
- {
- var v_oParameter = v_aPromptParameters[i];
- if (Array.isArray(v_oParameter.value))
- {
- for(var j=0; j<v_oParameter.value.length; j++)
- {
- var v_elInput = v_elForm.appendChild( document.createElement("input") );
- v_elInput.type = "hidden";
- v_elInput.name = v_oParameter.name;
- v_elInput.value = v_oParameter.value[j];
- }
- }
- else
- {
- var v_elInput = v_elForm.appendChild( document.createElement("input") );
- v_elInput.type = "hidden";
- v_elInput.name = v_oParameter.name;
- v_elInput.value = v_oParameter.value;
- }
- }
- }
- function buildSelectOptionXML(v_oValue) {
- return "<selectOption useValue=\"" + xmlEncode(v_oValue.use.toString()) + "\"" + (v_oValue.hasOwnProperty("display") ? (" displayValue=\"" + xmlEncode(v_oValue.display.toString()) + "\"") : "") + "/>";
- }
- function buildBoundRangeXML(v_oValue) {
- return "<selectBoundRange>" +
- "<start useValue=\"" + xmlEncode(v_oValue.boundRange.start.use.toString()) + "\"" +
- (v_oValue.boundRange.start.hasOwnProperty("display") ? (" displayValue=\"" + xmlEncode(v_oValue.boundRange.start.display.toString()) + "\"") : "") + "/>" +
- "<end useValue=\"" + xmlEncode(v_oValue.boundRange.end.use.toString()) + "\"" +
- (v_oValue.boundRange.end.hasOwnProperty("display") ? (" displayValue=\"" + xmlEncode(v_oValue.boundRange.end.display.toString()) + "\"") : "") + "/>" +
- "</selectBoundRange>";
- }
- function buildUnboundedEndRangeXML(v_oValue) {
- return "<selectUnboundedEndRange>" +
- "<start useValue=\"" + xmlEncode(v_oValue.unboundedEndRange.start.use.toString()) + "\"" +
- (v_oValue.unboundedEndRange.start.hasOwnProperty("display") ? (" displayValue=\"" + xmlEncode(v_oValue.unboundedEndRange.start.display.toString()) + "\"") : "") + "/>" +
- "</selectUnboundedEndRange>";
- }
- function buildUnboundedStartRangeXML(v_oValue) {
- return "<selectUnboundedStartRange>" +
- "<end useValue=\"" + xmlEncode(v_oValue.unboundedStartRange.end.use.toString()) + "\"" +
- (v_oValue.unboundedStartRange.end.hasOwnProperty("display") ? (" displayValue=\"" + xmlEncode(v_oValue.unboundedStartRange.end.display.toString()) + "\"") : "") + "/>" +
- "</selectUnboundedStartRange>";
- }
- function convertPromptValuesToXML(v_aValues) {
- var v_sXMLValues = "";
- for(var i=0; i<v_aValues.length; i++)
- {
- var v_oValue = v_aValues[i];
- if (v_oValue.hasOwnProperty("use"))
- {
- v_sXMLValues += buildSelectOptionXML(v_oValue);
- }
- else if (v_oValue.hasOwnProperty("boundRange"))
- {
- if (v_oValue.boundRange.start && v_oValue.boundRange.start.hasOwnProperty("use") && v_oValue.boundRange.end && v_oValue.boundRange.end.hasOwnProperty("use"))
- {
- v_sXMLValues += buildBoundRangeXML(v_oValue);
- }
- else
- {
- console.log("rsPromptParameters.convertPromptValuesToXML ... unexpected boundRange format.");
- break;
- }
- }
- else if (v_oValue.hasOwnProperty("unboundedEndRange"))
- {
- if (v_oValue.unboundedEndRange.start && v_oValue.unboundedEndRange.start.hasOwnProperty("use"))
- {
- v_sXMLValues += buildUnboundedEndRangeXML(v_oValue);
- }
- else
- {
- console.log("rsPromptParameters.convertPromptValuesToXML ... unexpected unboundedEndRange format.");
- break;
- }
- }
- else if (v_oValue.hasOwnProperty("unboundedStartRange"))
- {
- if (v_oValue.unboundedStartRange.end && v_oValue.unboundedStartRange.end.hasOwnProperty("use"))
- {
- v_sXMLValues += buildUnboundedStartRangeXML(v_oValue);
- }
- else
- {
- console.log("rsPromptParameters.convertPromptValuesToXML ... unexpected unboundStartRange format.");
- break;
- }
- }
- }
- return v_sXMLValues;
- }
- function convertComplexParameterToClassicViewerXML(v_oPromptParametersXML, v_aComplexParameterObject) {
- for(var i=0; i< v_aComplexParameterObject.length; i++)
- {
- var v_oPromptParameter = v_aComplexParameterObject[i];
- var v_sName = v_oPromptParameter.name;
- var v_aValues = v_oPromptParameter.value;
- var v_sValues = convertPromptValuesToXML( Array.isArray(v_aValues) ? v_aValues : [v_aValues]);
- if (v_sName && v_sValues)
- {
- if (!v_oPromptParametersXML[v_sName])
- {
- v_oPromptParametersXML[v_sName] = [];
- }
- v_oPromptParametersXML[v_sName].push(v_sValues);
- }
- }
- }
- function addClassicViewerPromptsComplex(v_elForm, v_aPromptParametersComplex) {
- //Complex json prompt values, e.g.:
- // [{"name":"ProductLine","value":[{"use":"Camping Equipment"},{"use":"Outdoor Protection"}]},{"name":"Product","value":[{"use":"BugShield Lotion"}]}]
- // [{"name":"ProductLine","value":[{"boundRange":[{"use":"36110","display":"36110"},{"use":"77110","display":"77110"}]}]}]
- // [{"name":"UnitPrice","value":[{"unboundedStartRange":{"use":"100","display":"100"}}]}]
- var v_oPromptParametersXML = {};
- //For each promptParameters passed in from options, parse, convert to XML then store the result in v_oPromptParametersXML
- for(var i=0; i<v_aPromptParametersComplex.length; i++)
- {
- var v_aComplexParameterObject;
- try
- {
- v_aComplexParameterObject = JSON.parse(v_aPromptParametersComplex[i]);
- if (!Array.isArray(v_aComplexParameterObject))
- {
- v_aComplexParameterObject = [v_aComplexParameterObject];
- }
- }
- catch(e)
- {
- console.log("rsPromptParameters.addClassicViewerPromptsComplex ... invalid promptParameters input : " + v_aPromptParametersComplex[i]);
- v_aComplexParameterObject = undefined;
- return "";
- }
-
- convertComplexParameterToClassicViewerXML(v_oPromptParametersXML, v_aComplexParameterObject);
- }
- for(var v_sName in v_oPromptParametersXML)
- {
- if (v_oPromptParametersXML.hasOwnProperty(v_sName))
- {
- var v_sXMLValues = "";
- for(var i=0; i<v_oPromptParametersXML[v_sName].length; i++)
- {
- v_sXMLValues += v_oPromptParametersXML[v_sName][i];
- }
- v_sXMLValues = "<selectChoices>" + v_sXMLValues + "</selectChoices>";
- var v_elInput = v_elForm.appendChild( document.createElement("input") );
- v_elInput.type = "hidden";
- v_elInput.name = "p_" + v_sName;
- v_elInput.value = v_sXMLValues;
- }
- }
- }
- /**
- * Convert the value of a parameter into the simple JSON form.
- * @param v_oValue The value that is either in SOAP-JSON or simple-JSON form
- * @return The simple-JSON representation of v_oValue
- */
- function valueToSimpleJson( v_oValue ) {
- // SOAP JSON has a type property
- switch (v_oValue.type) {
- case 'simpleParmValueItem':
- // soapJson and simpleJson are equivalent except the SOAP form has a few extra bits
- delete v_oValue.type;
- delete v_oValue.inclusive;
- break;
- case 'boundRangeParmValueItem':
- v_oValue = { boundRange : { start: v_oValue.start, end: v_oValue.end } };
- break;
- case 'unboundedStartRangeParmValueItem':
- v_oValue = { unboundedStartRange : { end: v_oValue.end } };
- break;
- case 'unboundedEndRangeParmValueItem':
- v_oValue = { unboundedEndRange : { start: v_oValue.start } };
- break;
- default:
- // If no type then assume input is already simple JSON
- break;
- }
-
- return v_oValue;
- }
- function groupPromptParamters(v_oPromptParameters, v_oPromptParametersComplex) {
- //Merge m_aPromptParametersComplex into m_oPromptParameters
- // The format of v_oPromptParametersComplex can be just about anything: SOAP JSON, simple JSON, compound JSON.
- // compound JSON is an array representation (like SOAP JSON) but where the value uses the simple JSON representation.
- // This method must determine what it is and process accordingly.
- var v_aPromptParametersComplex;
-
- if (typeof v_oPromptParametersComplex == 'string')
- {
- try
- {
- v_oPromptParametersComplex = JSON.parse(v_oPromptParametersComplex);
- }
- catch(e)
- {
- console.log("rsPromptParameters.groupPromptParamters ... invalid promptParameters input : " + v_oPromptParametersComplex);
- return undefined;
- }
- }
-
- if (!v_oPromptParameters)
- {
- v_oPromptParameters = {};
- }
- if (v_oPromptParametersComplex)
- {
- if (Array.isArray(v_oPromptParametersComplex))
- {
- v_aPromptParametersComplex = v_oPromptParametersComplex;
- }
- else
- {
- // Check if we have simple JSON or a single compound JSON parameter
- // share URL format for some reason represents a single parameter as an object but multiple parameters as an array
- if (typeof v_oPromptParametersComplex.name == 'string')
- {
- // We have an object of the form { name: "text", ...} which is not the simple JSON form
- // turn it into an array for further processing
- v_aPromptParametersComplex = [v_oPromptParametersComplex];
- }
- else
- {
- // We have simple JSON, merge it into v_oPromptParameters
- Object.keys(v_oPromptParametersComplex).forEach( function(key) {
- v_oPromptParameters[key] = v_oPromptParametersComplex[key];
- } );
- }
- }
- }
- for (var i = 0; v_aPromptParametersComplex && i < v_aPromptParametersComplex.length; ++i)
- {
- var v_aPromptParametersComplexObject;
- try
- {
- v_aPromptParametersComplexObject = typeof v_aPromptParametersComplex[i] == 'string' ? JSON.parse(v_aPromptParametersComplex[i]) : v_aPromptParametersComplex[i];
- if (!Array.isArray(v_aPromptParametersComplexObject))
- {
- v_aPromptParametersComplexObject = [v_aPromptParametersComplexObject];
- }
- }
- catch(e)
- {
- console.log("rsPromptParameters.groupPromptParamters ... invalid promptParameters input : " + v_aPromptParametersComplex[i]);
- return undefined;
- }
- for(var j=0; j<v_aPromptParametersComplexObject.length; j++)
- {
- // We could have either a SOAP JSON parameter value or a compound JSON parameter value
- var v_oPromptParameter = v_aPromptParametersComplexObject[j];
- var v_sName = v_oPromptParameter.name;
- var v_aValues = [];
- if (v_oPromptParameter.value)
- {
- v_aValues = (Array.isArray(v_oPromptParameter.value) || typeof v_oPromptParameter.value.length == "number") ? v_oPromptParameter.value : [v_oPromptParameter.value];
- }
- if (v_sName && v_aValues)
- {
- if (!v_oPromptParameters[v_sName])
- {
- v_oPromptParameters[v_sName] = [];
- }
- // It is valid for the value array to be empty
- for (var k = 0; k < v_aValues.length; ++k)
- {
- var v_oValue = valueToSimpleJson(v_aValues[k]);
- if (v_oValue.hasOwnProperty("use"))
- {
- v_oPromptParameters[v_sName].push({use: v_oValue.use, display: (v_oValue.hasOwnProperty("display") ? v_oValue.display : v_oValue.use)});
- }
- if (v_oValue.hasOwnProperty("boundRange"))
- {
- if (v_oValue.boundRange.start && v_oValue.boundRange.start.hasOwnProperty("use") && v_oValue.boundRange.end && v_oValue.boundRange.end.hasOwnProperty("use"))
- {
- v_oPromptParameters[v_sName].push({
- boundRange: {
- start : { use: v_oValue.boundRange.start.use, display: (v_oValue.boundRange.start.hasOwnProperty("display") ? v_oValue.boundRange.start.display : v_oValue.boundRange.start.use) },
- end : { use: v_oValue.boundRange.end.use, display: (v_oValue.boundRange.end.hasOwnProperty("display") ? v_oValue.boundRange.end.display : v_oValue.boundRange.end.use) }
- }
- });
- }
- else
- {
- console.log("rsPromptParameters.groupPromptParamters ... unexpected boundRange format");
- }
- }
- else if (v_oValue.hasOwnProperty("unboundedEndRange"))
- {
- if (v_oValue.unboundedEndRange.start && v_oValue.unboundedEndRange.start.hasOwnProperty("use"))
- {
- v_oPromptParameters[v_sName].push({
- unboundedEndRange: {
- start : {
- use: v_oValue.unboundedEndRange.start.use,
- display: (v_oValue.unboundedEndRange.start.hasOwnProperty("display") ? v_oValue.unboundedEndRange.start.display : v_oValue.unboundedEndRange.start.use)
- }
- }
- });
- }
- else
- {
- console.log("rsPromptParameters.groupPromptParamters ... unexpected unboundedEndRange format.");
- }
- }
- else if (v_oValue.hasOwnProperty("unboundedStartRange"))
- {
- if (v_oValue.unboundedStartRange.end && v_oValue.unboundedStartRange.end.hasOwnProperty("use"))
- {
- v_oPromptParameters[v_sName].push({
- unboundedStartRange: {
- end : {
- use: v_oValue.unboundedStartRange.end.use,
- display: (v_oValue.unboundedStartRange.end.hasOwnProperty("display") ? v_oValue.unboundedStartRange.end.display : v_oValue.unboundedStartRange.end.use)
- }
- }
- });
- }
- else
- {
- console.log("rsPromptParameters.groupPromptParamters ... unexpected unboundedStartRange format.");
- }
- }
- }
- }
- }
- }
- return v_oPromptParameters;
- }
-
- function emitValue( v_sTtype, v_oValue ) {
- var v_aValue = [];
- if (v_oValue !== undefined) { // test for actual undefined
- v_aValue.push( "<bus:");
- v_aValue.push( v_sTtype );
- v_aValue.push( " xsi:type=\"xsd:string\"" );
- if (v_oValue === null) { // test for actual null
- v_aValue.push( " xsi:nil=\"true\"/>" );
- }
- else {
- v_aValue.push( ">" );
- v_aValue.push( xmlEncode(v_oValue.toString()));
- v_aValue.push( "</bus:" );
- v_aValue.push( v_sTtype );
- v_aValue.push( ">" );
- }
- }
- return v_aValue.join("");
- }
- function emitUseDisplay( v_oValue ) {
- return emitValue( "use", v_oValue.use ) + emitValue( "display", v_oValue.display );
- }
- function buildSimpleParmValue(v_oValue) {
- return "<item xsi:type=\"bus:simpleParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xsd:boolean\">true</bus:inclusive>" +
- emitUseDisplay( v_oValue ) +
- "</item>";
- }
- function buildBoundRangeParmValue(v_oValue) {
- return "<item xsi:type=\"bus:boundRangeParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xs:boolean\">true</bus:inclusive>" +
- "<bus:start xsi:type=\"bus:simpleParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xs:boolean\">true</bus:inclusive>" +
- emitUseDisplay( v_oValue.boundRange.start ) +
- "</bus:start>" +
- "<bus:end xsi:type=\"bus:simpleParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xs:boolean\">true</bus:inclusive>" +
- emitUseDisplay( v_oValue.boundRange.end ) +
- "</bus:end>" +
- "</item>";
- }
- function buildUnboundedEndRangeParmValue(v_oValue) {
- return "<item xsi:type=\"bus:unboundedEndRangeParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xs:boolean\">true</bus:inclusive>" +
- "<bus:start xsi:type=\"bus:simpleParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xs:boolean\">true</bus:inclusive>" +
- emitUseDisplay( v_oValue.unboundedEndRange.start ) +
- "</bus:start>" +
- "</item>";
- }
- function buildUnboundedStartRangeParmValue(v_oValue) {
- return "<item xsi:type=\"bus:unboundedStartRangeParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xs:boolean\">true</bus:inclusive>" +
- "<bus:end xsi:type=\"bus:simpleParmValueItem\">" +
- "<bus:inclusive xsi:type=\"xs:boolean\">true</bus:inclusive>" +
- emitUseDisplay( v_oValue.unboundedStartRange.end ) +
- "</bus:end>" +
- "</item>";
- }
- function buildBusParameterValues(v_oPromptParameters, v_oPromptParametersComplex, v_sParamsTagName) {
- var v_sParameterValues = "<bus:" + (v_sParamsTagName || "parameterValues") + " xmlns:bus=\"http://developer.cognos.com/schemas/bibus/3/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
- " xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" SOAP-ENC:arrayType=\"bus:parameterValue[]\" xsi:type=\"SOAP-ENC:Array\">";
- var v_oPromptParameters = groupPromptParamters(v_oPromptParameters, v_oPromptParametersComplex);
- for(var v_sName in v_oPromptParameters)
- {
- if (v_oPromptParameters.hasOwnProperty(v_sName))
- {
- v_sParameterValues += "<item xsi:type=\"bus:parameterValue\">";
- v_sParameterValues += "<bus:name xsi:type=\"xsd:string\">" + xmlEncode(v_sName) + "</bus:name>";
- v_sParameterValues += "<bus:value xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"bus:parmValueItem[]\">";
- var v_aCurParams = v_oPromptParameters[v_sName];
- var v_iCurParamsLen = v_aCurParams.length;
- for(var i = 0; i < v_iCurParamsLen; i++)
- {
-
- var v_oValue = v_aCurParams[i];
-
- if (v_oValue.hasOwnProperty("use"))
- {
- v_sParameterValues += buildSimpleParmValue(v_oValue);
- }
- else if (v_oValue.hasOwnProperty("boundRange"))
- {
- v_sParameterValues += buildBoundRangeParmValue(v_oValue);
- }
- else if (v_oValue.hasOwnProperty("unboundedEndRange"))
- {
- v_sParameterValues += buildUnboundedEndRangeParmValue(v_oValue);
- }
- else if (v_oValue.hasOwnProperty("unboundedStartRange"))
- {
- v_sParameterValues += buildUnboundedStartRangeParmValue(v_oValue);
- }
- }
- v_sParameterValues += "</bus:value>";
- v_sParameterValues += "</item>";
- }
- }
- v_sParameterValues += "</bus:" + (v_sParamsTagName || "parameterValues") + ">";
- return v_sParameterValues;
- }
- function convertValueToBoundedRangeFormat(v_oValue) {
- v_oValue.boundRange = {start: {use: v_oValue.start.use, display: v_oValue.start.display},
- end: {use: v_oValue.end.use, display: v_oValue.end.display}};
- delete v_oValue.start;
- delete v_oValue.end;
- }
- function convertValueToUnboundedStartRangeFormat(v_oValue) {
- v_oValue.unboundedStartRange = {end: {use: v_oValue.end.use, display: v_oValue.end.display}};
- delete v_oValue.end;
- }
- function convertValueToUnboundedEndRangeFormat(v_oValue) {
- v_oValue.unboundedEndRange = {start: {use: v_oValue.start.use, display: v_oValue.start.display}};
- delete v_oValue.start;
- }
- return {
- //classicviewer perspective prompt parameter builder
- cvAddPromptParameters : function(v_elForm, v_aPromptParameters, v_aPromptParametersComplex) {
- console.log("rsPromptParameters.cvAddPromptParameters ...");
- addClassicViewerPrompts(v_elForm, v_aPromptParameters);
- addClassicViewerPromptsComplex(v_elForm, v_aPromptParametersComplex);
- },
- //authoring perspective prompt parameter builder
- rsBuildPromptParameters : function(v_oPromptParameters, v_oPromptParametersComplex, v_sParamsTagName) {
- //console.log("rsPromptParameters.rsBuildPromptParameters ...");
- if (v_oPromptParameters || v_oPromptParametersComplex)
- {
- return buildBusParameterValues(v_oPromptParameters, v_oPromptParametersComplex, v_sParamsTagName);
- }
- else
- {
- return "";
- }
- },
- //prompt parameters url builder
- //Expecting v_oPromptParameters input as object only
- rsBuildParameterUrl : function(v_oUrlMap, v_oPromptParameters) {
- var v_aPromptParameters = Array.isArray(v_oPromptParameters) ? v_oPromptParameters : [v_oPromptParameters];
- v_aPromptParameters.forEach( function(v_oPara) {
- if (typeof v_oPara !== 'undefined') {
- var v_aValues = Array.isArray(v_oPara.value) ? v_oPara.value : [v_oPara.value];
- v_aValues.forEach( function(v_oValue) {
- switch(v_oValue.type) {
- case "boundRangeParmValueItem":
- convertValueToBoundedRangeFormat(v_oValue);
- break;
- case "unboundedStartRangeParmValueItem":
- convertValueToUnboundedStartRangeFormat(v_oValue);
- break;
- case "unboundedEndRangeParmValueItem":
- convertValueToUnboundedEndRangeFormat(v_oValue);
- break;
- default:
- break;
- }
- delete v_oValue.type;
- delete v_oValue.inclusive;
- });
- }
- });
- v_oUrlMap.promptParameters = !!v_oPromptParameters ? JSON.stringify(v_aPromptParameters) : null;
- },
-
- /**
- * Convert the array representation of parameter values into an object representation of parameter values.
- * @param v_aParameters
- * @returns An object with parameters as members or empty object if there are none
- */
- convertParameterArrayToObject : function(v_aParameters) {
- var v_oParameters = {};
- if (v_aParameters && v_aParameters.length > 0) {
- v_aParameters.forEach( function(v_oParameter) {
- if (v_oParameter && v_oParameter.name) {
- v_oParameters[v_oParameter.name] = v_oParameter.value;
- }
- });
- }
- return v_oParameters;
- }
- };
- });
|