GetAlgResult GetAlg(AlgId tAlg, GetAlgArg tArg)
tAlg. Моникёр экземпляра алгоритма расчёта показателей или его блока.
tArg. Параметры выполнения операции.
Операция GetAlg извлекает метаданные алгоритма расчёта показателей или его блоков.
Для выполнения операции укажите в поле tAlg моникёр экземпляра алгоритма расчёта показателей или блока, используемого в алгоритме расчёта и созданного в репозитории, а в поле tArg.pattern шаблон, в соответствии с которым будут извлекаться метаданные. Моникёр может быть получен при выполнении операции OpenAlg.
Результатом работы операции будут запрошенные метаданные.
Ниже приведён пример получения метаданных алгоритма расчёта показателей. В запросе передаётся моникёр открытого экземпляра алгоритма расчёта и шаблон, который определяет, какие именно метаданные необходимо извлечь. В ответе приходит полученная информация.
{
"GetAlg" :
{
"tAlg" :
{
"id" : "S1!M!S!C1"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"params" : "Get",
"algorithm" :
{
"tree" : "Get",
"branchCondition" : "Get"
}
}
}
}
}
{
"GetAlgResult" :
{
"id" :
{
"id" : "S1!M!S!C1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "26",
"@hf" : "0",
"i" : "AREA_ALG",
"n" : "Алгоритм для выч.показателей области данных",
"k" : "231264",
"c" : "268033",
"p" : "231226",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "0",
"calcObject" :
{
"k" : "231264",
"id" : "AREA_ALG",
"n" : "Алгоритм для выч.показателей области данных",
"vis" : "1",
"type" : "Algorithm",
"params" :
{
"its" :
{
"it" :
[
{
"k" : "1",
"id" : "PARAM0",
"n" : "Период",
"vis" : "1",
"dataType" : "2",
"defaultValueSelection" : "S1!M!S!S5",
"linkedObjectKey" : "104891",
"linkedStubKey" : "-1",
"hidden" : "0",
"tag" : "",
"attrs" :
{
"its" :
{
"it" :
[
{
"k" : "1",
"id" : "BLOCK_TYPE",
"n" : "Тип блока календаря",
"vis" : "1",
"dt" : "2"
},
{
"k" : "2",
"id" : "START_DATE",
"n" : "Дата начала периода",
"vis" : "1",
"dt" : "4"
},
{
"k" : "3",
"id" : "NAME",
"n" : "Имя элемента календаря",
"vis" : "1",
"dt" : "1"
},
{
"k" : "4",
"id" : "ID",
"n" : "Идентификатор",
"vis" : "1",
"dt" : "1"
},
{
"k" : "5",
"id" : "ORDER",
"n" : "Порядок",
"vis" : "1",
"dt" : "2"
},
{
"k" : "6",
"id" : "PERIOD",
"n" : "Период",
"vis" : "1",
"dt" : "4"
},
{
"k" : "7",
"id" : "YEAR",
"n" : "Номер года",
"vis" : "1",
"dt" : "2"
},
{
"k" : "8",
"id" : "HALF_OF_YEAR",
"n" : "Номер полугодия",
"vis" : "1",
"dt" : "2"
},
{
"k" : "9",
"id" : "QUARTER",
"n" : "Номер квартала",
"vis" : "1",
"dt" : "2"
},
{
"k" : "10",
"id" : "MONTH",
"n" : "Номер месяца",
"vis" : "1",
"dt" : "2"
}
]
}
},
"index" : "0"
}
]
}
},
"algorithm" :
{
"calcTree" :
{
"nodes" :
{
"its" :
{
"it" :
[
{
"k" : "231264",
"n" : "Алгоритм для выч.показателей области данных",
"type" : "CalcObject",
"objType" : "Algorithm",
"included" : "1",
"readOnly" : "0"
},
{
"k" : "231264:231265",
"n" : "Показатель",
"type" : "CalcObject",
"objType" : "CalcBlock",
"objKey" : "231265",
"parentKey" : "231264",
"included" : "1",
"index" : "0",
"readOnly" : "0",
"canMoveDown" : "0",
"canMoveUp" : "0"
}
]
}
}
},
"calcParams" :
{
"its" :
{
"it" :
[
{
"k" : "1",
"id" : "PARAM0",
"n" : "Период",
"vis" : "1",
"defaultValueSelection" : "S1!M!S!S3",
"index" : "0"
}
]
}
},
"workspace" : "S1!M!S!C4"
}
}
}
}
}
public static GetAlgResult GetAlgoMetadata(AlgId moniker)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tGet = new GetAlg()
{
tArg = new GetAlgArg()
{
pattern = new AlgMdPattern()
{
algorithm = new AlgCalcAlgPattern()
{
branchCondition = ListOperation.Get,
tree = ListOperation.Get
},
@params = ListOperation.Get
}
},
tAlg = moniker
};
//Получение метаданных
var result = somClient.GetAlg(tGet);
return result;
}
См. также: