ApplyParamAdvFilters

Синтаксис

ApplyParamAdvFiltersResult ApplyParamAdvFilters(OdId tObject, ApplyParamAdvFiltersArg tArg)

Параметры

tObject. Моникёр открываемого объекта репозитория.

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

Описание

Операция ApplyParamAdvFilters применяет расширенные фильтры в параметрах объекта перед его открытием.

Комментарии

Расширенные фильтры доступны, если в качестве редактора для параметра используется справочник репозитория. Фильтры позволяют ограничить выбор или настроить управление другими параметрами во время открытия объекта репозитория. Для выполнения операции укажите в поле tObject моникёр открываемого на просмотр объекта репозитория. Моникёр может быть получен при выполнении операции GetObjects. В поле tArg необходимо передать коллекцию параметров, в основе которых лежат справочники, а также отметки этих справочников. Информацию о параметрах, использующих справочники, можно получить в результатах операции GetObjects в поле mds.its.pars. Для открытия справочников используйте операцию OpenDim, для работы с элементами и управления отметкой операции GetDimElements, ChangeDimSelection. При выполнении операции ApplyParamAdvFilters будет осуществляться перестроение справочников в параметрах в соответствии с заданными настройками расширенных фильтров.

Результатом выполнения операции будет логическое значение true, если применение расширенных фильтров завершилось успешно.

Итоговые отметки параметров в дальнейшем могут быть переданы в соответствующую операцию Open* для открытия объекта.

Пример

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

В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».

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">
<ApplyParamAdvFilters xmlns="http://www.fsight.ru/PP.SOM.Som">
<tObject xmlns="">
  <id>NMGCENDEBJJIGOAEMKHENDOHBOBLNGJEFIIEIMPLBOAHIDPB!M!9415</id>
  </tObject>
<tArg xmlns="">
<dims>
<it>
  <paramId>ITEM</paramId>
  <selectionId>NMGCENDEBJJIGOAEMKHENDOHBOBLNGJEFIIEIMPLBOAHIDPB!M!S!SMNMGPAEEBJJIGOAEKMOAGHJLGPPLFDBEPLCIAAPHKOBCMDMM</selectionId>
  </it>
<it>
  <paramId>ITEM1</paramId>
  <selectionId>NMGCENDEBJJIGOAEMKHENDOHBOBLNGJEFIIEIMPLBOAHIDPB!M!S!SMFANJBEEBJJIGOAEILAOBMPAEONHPGOEIKEAICAAEPLEBPAN</selectionId>
  </it>
  </dims>
  </tArg>
  </ApplyParamAdvFilters>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ApplyParamAdvFiltersResult 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">
  <res xmlns="">1</res>
  </ApplyParamAdvFiltersResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"ApplyParamAdvFilters" :
{
"tObject" :
{
"id" : "NMGCENDEBJJIGOAEMKHENDOHBOBLNGJEFIIEIMPLBOAHIDPB!M!9415"
},
"tArg" :
{
"dims" :
{
"it" :
[
{
"paramId" : "ITEM",
"selectionId" : "NMGCENDEBJJIGOAEMKHENDOHBOBLNGJEFIIEIMPLBOAHIDPB!M!S!SMNMGPAEEBJJIGOAEKMOAGHJLGPPLFDBEPLCIAAPHKOBCMDMM"
},
{
"paramId" : "ITEM1",
"selectionId" : "NMGCENDEBJJIGOAEMKHENDOHBOBLNGJEFIIEIMPLBOAHIDPB!M!S!SMFANJBEEBJJIGOAEILAOBMPAEONHPGOEIKEAICAAEPLEBPAN"
}
]
}
}
}
}

JSON-ответ:

{
"ApplyParamAdvFiltersResult" :
{
"res" : "1"
}
}
public static ApplyParamAdvFiltersResult ApplyParamAdvFilters(MbId mb, string objectId, AFDimSelection[] paramsDimsSelection)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tApply = new ApplyParamAdvFilters()
{
tArg = new ApplyParamAdvFiltersArg()
{
dims = paramsDimsSelection
},
tObject = new OdId() { id = mb.id + "!" + PP7SOMSampleClass.FindObjectById(mb, objectId).k }
};
// Применение расширенных фильтров в параметрах объекта
var result = somClient.ApplyParamAdvFilters(tApply);
return result;
}

См. также:

Работа с репозиторием