Below is the example of using the GetMs operation to stop model calculation. The request contains an instance of opened modeling container, pattern and parameters of model calculation. The response contains information about calculation.
{
"GetMs" :
{
"tMs" :
{
"id" : "GEGBFKLHGPMOFOAEIMFEBNKILLAKNJBEIKKFGPFLECLAJIMA!M!S!CEDFMNBMHGPMOFOAEEOKCHDKLPKPFFKNEILBKMMPKNGGGFEEE"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"item" :
{
"key" : "306496",
"problem" :
{
"problemCalculation" :
{
"calcAction" : "Stop",
"calculationState" : ""
},
"problemCalculationKey" : "0"
}
}
}
}
}
}
{
"GetMsResult" :
{
"id" :
{
"id" : "GEGBFKLHGPMOFOAEIMFEBNKILLAKNJBEIKKFGPFLECLAJIMA!M!S!CEDFMNBMHGPMOFOAEEOKCHDKLPKPFFKNEILBKMMPKNGGGFEEE"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "key 306480",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "6",
"@hf" : "0",
"i" : "MODELSPACE",
"n" : "Modeling container",
"k" : "306480",
"c" : "5121",
"p" : "1580",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "0",
"item" :
{
"k" : "306496",
"id" : "OBJ306496",
"n" : "Modeling problem",
"vis" : "1",
"type" : "Problem",
"problemMd" :
{
"calculation" :
{
"pointCount" : "10",
"pointPassed" : "0",
"saveData" : "1",
"copyFact" : "0",
"treatNullsAsZeros" : "0",
"isRunning" : "0",
"calculationState" :
{
"message" : "Problem calculation is finished. Calculation time is 00:00:00"
},
"isSuspend" : "1",
"saveZeros" : "1",
"overwriteSameValues" : "0"
},
"problemCalculationKey" : "5",
"useScenarios" : "1",
"readOnly" : "0"
}
}
}
}
}
public static MsItem GetMsCalcStop(MsId ms, uint modelKey, uint? prCalcKey)
{
var getMsOp = new GetMs()
{
// Set operation execution parameters
tMs = ms,
tArg = new GetMsArg()
{ // Set general data extraction pattern
pattern = new MsMdPattern()
{
item = new MsItemPattern()
{ // Set key of calculated model
key = modelKey,
// Set data calculation pattern
problem = new MsProblemPattern()
{
problemCalculation = new MsProblemCalculationPattern()
{
calcAction = CalcAction.Stop,
calculationState = new MsCalculationStatePattern()
},
problemCalculationKey = prCalcKey
}
}
}
}
};
// Create a proxy object for operation execution
var somClient = new SomPortTypeClient();
// Stop calculation
var result = somClient.GetMs(getMsOp);
return result.meta.item;
}
See also: