Below is the example of using the SetMs operation to edit equation parameters. The request contains an instance of opened modeling container, parameters of operation execution, equation settings for theDeterminate Equation method, and the pattern for getting changed data. After execution the operation returns the model that contains the changed equation.
To execute the example, the equation must include input and output variables.
{
"SetMs" :
{
"tMs" :
{
"id" : "PCHOEAAGHDNBFOAEDIPCJPLCLBKHODLELJPBHIDPMNHOLLLO!M!S!CKGHHOAAGHDNBFOAEPHOKOAECABEHOFHEIILLAJMKFLIHCFNI"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"item" :
{
"key" : "89669",
"problem" :
{
"metamodel" :
{
"calculationChain" : "Change"
}
}
}
},
"meta" :
{
"item" :
{
"k" : "89669",
"type" : "Problem",
"problemMd" :
{
"metamodel" :
{
"calculationChain" :
{
"its" :
{
"Item" :
{
"k" : "4",
"type" : "Model",
"model" :
{
"transform" :
{
"formulas" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"kind" : "Deterministic",
"method" :
{
"deterministic" :
{
"modifyType" : "Replace",
"expression" : "10 -@_2:0[] * 3.14",
"operands" :
{
"its" :
{
"Item" :
{
"slice" :
{
"k" : "0",
"id" : "1",
"n" : "MyInputVavable",
"vis" : "true",
"variableKey" : "2",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "1"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
}
}
}
},
"aggregateOperands" :
{
"its" : ""
}
}
}
}
]
}
}
}
}
}
}
}
}
}
}
},
"metaGet" :
{
"obInst" : "true",
"scenarios" : "Get",
"period" : "true",
"item" :
{
"key" : "89669",
"problem" :
{
"metamodel" :
{
"calculationChain" : "Get",
"calcChainPattern" :
{
"modelPattern" :
{
"transform" :
{
"formulaCount" : "true",
"formulas" :
{
"method" : ""
},
"equationsFormula" :
{
"method" : ""
},
"kind" : "true"
}
}
},
"visualControllerPattern" :
{
"variableRubricatorKey" : "true",
"useSourceName" : "false",
"freeVariables" : "true",
"levelFormat" : "Short"
}
},
"scenarios" : "Get",
"details" : "true",
"useSavedCoefficients" : "true"
}
}
}
}
}
}
{
"SetMsResult" :
{
"id" :
{
"id" : "PCHOEAAGHDNBFOAEDIPCJPLCLBKHODLELJPBHIDPMNHOLLLO!M!S!CKGHHOAAGHDNBFOAEPHOKOAECABEHOFHEIILLAJMKFLIHCFNI"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@fullUrl" : "http:\/\/v-shp-development.dev.fs.fsight.world\/",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "4",
"@hf" : "0",
"i" : "MODELSPACE",
"n" : "Modeling container",
"k" : "1581",
"c" : "5121",
"p" : "1580",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "0",
"period" :
{
"start" : "1970-01-01",
"end" : "2020-12-31"
},
"scenarios" :
{
"nodes" :
{
"it" :
[
{
"@isFolder" : "0",
"k" : "1628",
"id" : "OBJ1628",
"n" : "Basic",
"vis" : "1",
"scenDesc" :
{
"@fullUrl" : "http:\/\/v-shp-development.dev.fs.fsight.world\/",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "0",
"@hf" : "0",
"i" : "OBJ1628",
"n" : "Basic",
"k" : "1628",
"c" : "5124",
"p" : "1627",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
"internalKey" : "1629"
},
{
"@isFolder" : "0",
"k" : "5371",
"id" : "OBJ5371",
"n" : "Basic (copy1)",
"vis" : "1",
"scenDesc" :
{
"@fullUrl" : "http:\/\/v-shp-development.dev.fs.fsight.world\/",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "0",
"@hf" : "0",
"i" : "OBJ5371",
"n" : "Basic (copy1)",
"k" : "5371",
"c" : "5124",
"p" : "1627",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
"internalKey" : "5372"
}
]
}
},
"item" :
{
"k" : "89669",
"id" : "MODEL_NEW",
"n" : "MODEL_NEW",
"vis" : "1",
"type" : "Problem",
"problemMd" :
{
"metamodel" :
{
"k" : "89670",
"calculationChain" :
{
"its" :
{
"Item" :
[
{
"k" : "1",
"n" : "MyInputVavable",
"vis" : "1",
"type" : "Variable",
"excluded" : "0",
"graphMeta" : "{"Geometry":{"x":20,"y":10,"width":150,"height":50},"ChartOptions":{"chart":{"defaultSeriesType":"line","mixed":true,"backgroundColor":"rgba(0, 0, 0, 0.000000)"},"plotOptions":{"series":{"dataLabels":{"formatter":"%Autovalue","dataFormat":"#,##0.00"}}},"tooltip":{"formatter":"Value: %Autovalue\nDate: %PointName","enabled":true,"backgroundType":"none","style":{"fontFamily":"Arial","fontSize":"12px","color":"#000000"}},"yAxis":[{"labels":{"enabled":true,"dataFormat":"#,##0.00"},"title":{"text":""}}],"xAxis":{"tickInterval":2,"labels":{},"title":{}},"series":[{"entryKey":1,"scenarioKey":4294967295,"serieType":"fact","showInLegend":true,"type":"line","color":"rgba(129, 129, 129, 1)","borderColor":"rgba(129, 129, 129, 1)","borderWidth":0,"lineColor":"rgba(129, 129, 129, 1)","zIndex":1,"legendIndex":0,"visible":true,"background":{"color":"rgba(129, 129, 129, 1)","type":"color"},"marker":{"enabled":false,"symbol":"circle","fillColor":"#FFFFFF","lineWidth":1.5,"lineColor":null},"dataLabels":{"formatter":"%Autovalue"},"trendLine":{}}]}}",
"chainVariable" :
{
"slice" :
{
"k" : "0",
"id" : "MyInputVavable|A",
"n" : "MyInputVavable|A",
"vis" : "1",
"variableKey" : "1",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "1"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"fullName" : "MyInputVavable|A",
"originalName" : "MyInputVavable",
"originalShortName" : "MyInputVavable",
"useCustomName" : "0"
}
},
{
"k" : "2",
"n" : "MyOutputVavable",
"vis" : "1",
"type" : "Variable",
"excluded" : "0",
"graphMeta" : "{"Geometry":{"x":30,"y":140,"width":150,"height":50}}",
"chainVariable" :
{
"slice" :
{
"k" : "0",
"id" : "MyOutputVavable|A",
"n" : "MyOutputVavable|A",
"vis" : "1",
"variableKey" : "2",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "2"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"fullName" : "MyOutputVavable|A",
"originalName" : "MyOutputVavable",
"originalShortName" : "MyOutputVavable",
"useCustomName" : "0"
}
},
{
"k" : "4",
"id" : "OBJ4",
"n" : "MyOutputVavable|A[t] = MyInputVavable[t], (From parent)-(From parent)",
"vis" : "1",
"type" : "Model",
"excluded" : "0",
"graphMeta" : "",
"model" :
{
"transform" :
{
"formulaCount" : "1",
"formulas" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"kind" : "Deterministic",
"method" :
{
"deterministic" :
{
"modifyType" : "Replace",
"expression" : "10 - @_2:0[] * 3.14",
"result" :
{
"slice" :
{
"k" : "0",
"id" : "MyOutputVavable|A",
"n" : "MyOutputVavable|A",
"vis" : "1",
"variableKey" : "1",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "2"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"lag" : "",
"key" : "0",
"termToText" : "{MyOutputVavable|A[t]}",
"termToInnerText" : "@_1:0[]",
"termInfo" :
{
"k" : "4294967295",
"lag" : "0",
"inversion" :
{
"type" : "None",
"lag" : "PrecidingValue",
"previousLag" : "-1",
"seasonality" : "None",
"dependence" : "Linear",
"K" : "3"
},
"slice" :
{
"k" : "0",
"id" : "MyOutputVavable|A",
"n" : "MyOutputVavable|A",
"vis" : "1",
"variableKey" : "1",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "2"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"date" : "1899-12-30"
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"included" : "0"
},
"operands" :
{
"its" :
{
"Item" :
{
"k" : "0",
"slice" :
{
"k" : "0",
"id" : "1",
"n" : "MyInputVavable",
"vis" : "1",
"variableKey" : "2",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "1"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"lag" : "",
"key" : "1",
"termToText" : "{MyInputVavable[t]}",
"termToInnerText" : "@_2:0[]",
"termInfo" :
{
"k" : "4294967295",
"lag" : "0",
"inversion" :
{
"type" : "None",
"lag" : "PrecidingValue",
"previousLag" : "-1",
"seasonality" : "None",
"dependence" : "Linear",
"K" : "3"
},
"slice" :
{
"k" : "0",
"id" : "1",
"n" : "MyInputVavable",
"vis" : "1",
"variableKey" : "2",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "1"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"date" : "1899-12-30"
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"included" : "1"
}
}
}
},
"inversionInfo" :
{
"type" : "None",
"lag" : "PrecidingValue",
"previousLag" : "-1",
"seasonality" : "None",
"dependence" : "Linear",
"K" : "3"
},
"doUseR" : "0",
"supportsR" : "0"
},
"calendarLevel" : "Year",
"outputSliceKey" : "0"
}
]
}
},
"kind" : "Simple"
},
"warnings" : "",
"readOnly" : "0"
}
}
]
}
},
"visualController" :
{
"variableRubricatorKey" : "89671",
"freeVariables" :
{
"its" : ""
},
"userRPath" : "",
"isRExist" : "0"
},
"suppressEmptyFilter" :
{
"suppressEmpty" : "0",
"suppressEmptyArea" : "SerieBounds"
},
"readOnly" : "0",
"variableTestUseR" : "0",
"calculateIdentOnFact" : "0"
},
"scenarios" :
{
"its" : ""
},
"details" :
{
"period" :
{
"identificationStartDate" : "1990-01-01",
"identificationEndDate" : "2018-04-24",
"forecastStartDate" : "2018-04-25",
"forecastEndDate" : "2020-01-01",
"identificationStartDateParamID" : "",
"identificationEndDateParamID" : "",
"forecastStartDateParamID" : "",
"forecastEndDateParamID" : "",
"autoPeriod" : "0",
"identificationStartOffset" : "0",
"identificationEndOffset" : "0",
"forecastEndOffset" : "0",
"isIdentStartCorrect" : "1",
"isIdentEndCorrect" : "1",
"isForecastEndCorrect" : "1"
},
"currentPoint" : "2018-04-25"
},
"useSavedCoefficients" : "0",
"useScenarios" : "0",
"readOnly" : "0"
}
}
}
}
}
The SetMsDeterm function changes the method of equation calculation. Input parameters:
ms. Opened modeling container instance.
modelKey. Key of the model that contains the equation.
eqKey. Equation key.
eq. Opened equation instance. To execute the example, the equation must include input and output variables.
After executing the function returns a model that contains the equation.
public static MsItem SetMsDeterm(MsId ms, ulong modelKey, ulong eqKey, MsModel eq)
{ // Get input variable
MsFormulaTransformVariable inp = eq.transform.inputs.its.GetValue(0) as MsFormulaTransformVariable;
// Set operation execution parameters
var setMsOp = new SetMs();
setMsOp.tMs = ms;
setMsOp.tArg = new SetMsArg()
{ // Set data change pattern
pattern = new MsMdPattern()
{
item = new MsItemPattern()
{ // Specify model key
key = modelKey,
problem = new MsProblemPattern()
{
metamodel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Change
}
}
}
},
// Set data that must be changed
meta = new MsMd()
{
item = new MsItem()
{ // Specify model key
k = modelKey,
type = MsItemType.Problem,
problemMd = new MsProblem()
{
metamodel = new MsMetaModel()
{
calculationChain = new MsCalculationChainEntries()
{
its = new MsCalculationChainEntry[]
{
new MsCalculationChainEntry()
{
k = eqKey,
type = MsCalculationChainType.Model,
model = new MsModel()
{
transform = new MsFormulaTransform()
{
formulas = new TsFormulas()
{
its = new TsFormula[]
{
new TsFormula()
{
kind = TsFormulaKind.Deterministic,
method = new TsMethod()
{ // Set method calculation parameters
deterministic = new TsDeterministicMethod()
{ // Set expression elements
operands = new MsFormulaTerms()
{
its = new MsFormulaTerm[]
{
new MsFormulaTerm()
{slice = inp.slices.its.GetValue(0) as MsFormulaTransformSlice}
}
},
// Set calculation expression
expression = "10 -" + "@_"+inp.k + ":0[]" + " * 3.14",
// Set output series creation method
modifyType = TsMethodModifyType.Replace,
// Specify that do not use aggregation
aggregateOperands = new MsCompositeFormulaTerms()
{its = new MsCompositeFormulaTerm[]{}},
}
}
}
}
}
}
}
}
}
}
}
}
}
}, // Set changed data extraction pattern
metaGet = new MsMdPattern()
{
scenarios = ListOperation.Get,
period = true,
item = new MsItemPattern()
{
key = modelKey,
problem = new MsProblemPattern()
{
details = true,
scenarios = ListOperation.Get,
useSavedCoefficients = true,
metamodel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Get,
calcChainPattern = new MsCalculationChainPattern()
{
modelPattern = new MsModelPattern()
{
transform = new MsFormulaTransformPattern()
{
kind = true,
formulaCount = true,
formulas = new TsFormulaPattern()
{
method = new TsMethodPattern() { }
},
equationsFormula = new TsFormulaPattern()
{
method = new TsMethodPattern() { }
}
}
}
},
visualControllerPattern = new MsMetaModelVisualControllerPattern()
{
variableRubricatorKey = true,
levelFormat = MsLevelFormat.Short,
useSourceName = false,
freeVariables = true
}
}
}
}
}
}; // Create a proxy object for operation execution
var somClient = new SomPortTypeClient();
// Set operation execution parameters
var result = somClient.SetMs(setMsOp);
return result.meta.item;
}
See also:
SOAP