GetDmCalc

Синтаксис

DmCalcResult GetDmCalc(DmId tDim, GetDmCalcArg tArg)

Параметры

tDim. Моникёр открытого экземпляра вычисляемого справочника.

tArg. Параметры выполнения операции.

Описание

Операция GetDmCalc извлекает метаданные вычисляемого справочника.

Комментарии

Данная операция позволяет получить информацию о структуре вычисляемого справочника: атрибуты, блоки, индексы, уровни справочника, макрос для построения дерева элементов, а также другие настройки, влияющие на работу справочника. Для выполнения операции укажите в поле tDim моникёр экземпляра вычисляемого справочника, а в поле tArg параметры для извлечения информации. Моникёр может быть получен при выполнении операции OpenDim. В поле tArg.pattern указывается шаблон, в соответствии с которым будет извлекаться информация. Результатом работы операции будут запрошенные метаданные.

Пример

Ниже приведён пример использования операции GetDmCalc для получения информации о структуре вычисляемого справочника. В запросе передаётся моникёр справочника и шаблон, который определяет, какие именно метаданные необходимо извлечь. В ответе приходит полученная информация.

SOAP-запрос:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetDmCalc xmlns="http://www.fsight.ru/PP.SOM.Som">
<tDim xmlns="">
  <id>S1!M!S!DM1</id>
  </tDim>
<tArg xmlns="">
<pattern>
  <obInst>true</obInst>
  <attributes>Get</attributes>
  <blocks>Get</blocks>
  </pattern>
  </tArg>
  </GetDmCalc>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<GetDmCalcResult xmlns="http://www.fsight.ru/PP.SOM.Som" xmlns:q1="http://www.fsight.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id xmlns="">
  <id>S1!M!S!DM1</id>
  </id>
<meta xmlns="">
<obInst>
<obDesc ds="" isShortcut="0" isLink="0" ver="5" hf="0">
  <i>DIM_CALC</i>
  <n>Справочник</n>
  <k>175067</k>
  <c>1027</c>
  <p>175063</p>
  <h>0</h>
  <hasPrv>0</hasPrv>
  <ic>0</ic>
  <isPermanent>1</isPermanent>
  <isTemp>0</isTemp>
  </obDesc>
  </obInst>
  <dirty>0</dirty>
<attributes>
<attributes>
<it>
  <k>1</k>
  <name>Наименование</name>
  <id>NAME</id>
  <dataType>1</dataType>
  <visible>1</visible>
  <nameDest>1</nameDest>
  <hasHierarchy>0</hasHierarchy>
<order>
  <pattern>None</pattern>
  </order>
  </it>
<it>
  <k>2</k>
  <name>Идентификатор</name>
  <id>ID</id>
  <dataType>2</dataType>
  <visible>1</visible>
  <idDest>1</idDest>
  <hasHierarchy>0</hasHierarchy>
<order>
  <pattern>None</pattern>
  </order>
  </it>
<it>
  <k>3</k>
  <name>Порядок</name>
  <id>ORDER</id>
  <dataType>2</dataType>
  <visible>1</visible>
  <hasHierarchy>0</hasHierarchy>
<order>
  <pattern>Get</pattern>
  <reverse>0</reverse>
  <index>0</index>
  </order>
  </it>
  </attributes>
  <hideInaccessible>1</hideInaccessible>
  </attributes>
<blocks>
<it>
  <k>1</k>
  <id>BLOCK1</id>
  <name>Блок1</name>
<indexes>
<it>
  <k>1</k>
  <id>PRIMARY_INDEX</id>
  <name>Первичный индекс блока Блок1</name>
  <primary>1</primary>
  <unique>1</unique>
<indexAttributes>
  <it>ID</it>
  </indexAttributes>
  </it>
  </indexes>
  </it>
  </blocks>
  </meta>
  </GetDmCalcResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"GetDmCalc" :
{
"tDim" :
{
"id" : "S1!M!S!DM1"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"attributes" : "Get",
"blocks" : "Get"
}
}
}
}

JSON-ответ:

{
"GetDmCalcResult" :
{
"id" :
{
"id" : "S1!M!S!DM1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "5",
"@hf" : "0",
"i" : "DIM_CALC",
"n" : "Справочник",
"k" : "175067",
"c" : "1027",
"p" : "175063",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "0",
"attributes" :
{
"attributes" :
{
"it" :
[
{
"k" : "1",
"name" : "Наименование",
"id" : "NAME",
"dataType" : "1",
"visible" : "1",
"nameDest" : "1",
"hasHierarchy" : "0",
"order" :
{
"pattern" : "None"
}
},
{
"k" : "2",
"name" : "Идентификатор",
"id" : "ID",
"dataType" : "2",
"visible" : "1",
"idDest" : "1",
"hasHierarchy" : "0",
"order" :
{
"pattern" : "None"
}
},
{
"k" : "3",
"name" : "Порядок",
"id" : "ORDER",
"dataType" : "2",
"visible" : "1",
"hasHierarchy" : "0",
"order" :
{
"pattern" : "Get",
"reverse" : "0",
"index" : "0"
}
}
]
},
"hideInaccessible" : "1"
},
"blocks" :
{
"it" :
{
"k" : "1",
"id" : "BLOCK1",
"name" : "Блок1",
"indexes" :
{
"it" :
{
"k" : "1",
"id" : "PRIMARY_INDEX",
"name" : "Первичный индекс блока Блок1",
"primary" : "1",
"unique" : "1",
"indexAttributes" :
{
"it" : "ID"
}
}
}
}
}
}
}
}
public static DmCalcResult GetUsertDimension(DmId moniker)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tGet = new GetDmCalc()
{
tArg = new GetDmCalcArg()
{
pattern = new DmCalcMdPattern()
{
attributes = ListOperation.Get,
blocks = ListOperation.Get,
}
},
tDim = moniker
};
//Получение информации о вычисляемом справочнике
var result = somClient.GetDmCalc(tGet);
return result;
}

См. также:

Работа со справочниками