Клиент Назад В начало Вперед

При вызове методов vip-интерфейсов (через объектные интерфейсы) первым параметром необходимо указывать хендл на vip-интерфейс. Прототипы методов выглядят следующим образом:

<имя-объектного-интерфейса>_<имя-метода>(ifcHandle ifc,
  <список-параметров>)

Работа статических методов не зависит от контекста выполнения, поэтому для них нет необходимости указывать хендл на vip-интерфейс. Прототипы статических методов выглядят следующим образом:

<имя-vip-интерфейса>_<имя-метода>( <список-параметров> )

Для считывания свойств объектов используется метод:

<тип-данных-для-интерфейса> <имя-интерфейса>_getData(ifcHandle ifc)

Этот метод получает данные для всех подобъектов, раскрутив их до простых типов данных и не возвращая ссылки на объектные интерфейсы. Вместо ссылок на интерфейсы будут возвращаться их данные. Таким образом, система развернет объект в иерархический набор данных. Правило раскрутки простое: любой подобъект, имеющий реляционные свойства, будет вытаскиваться в массив. Даже ссылка на один экземпляр (например, каталог) будет возвращаться как массив, где количество элементов = 0 будет означать аналог невалидной записи.

Для модификации данных объектов в БД в Атлантисе используется метод:

ifcHandle <имя-интерфейса>_setData(ifcHandle ifc, <тип-данных-интерфейса> data)

Этот метод вызывает метод DoSetData соответствующего интерфейса.

Также имеется системный web-сервис SystemService с методами:

public static IfcName [] Implements (String vipIfcComponent, String vipIfcName)

Метод IfcName возвращает список объектных интерфейсов, реализуемых данным vip-интерфейсом. Если vip-интерфейс реализует IDynamicCast, то список интерфейсов, реализующихся через делегирование будет отсутствовать.

public static bool IsImplement (String vipIfcComponent, String vipIfcName, String objIfcComponent, String objIfcName)

Метод IsImplement возвращает true, если vip-интерфейс реализует указанный obj-интерфейс. Если vip-интерфейс реализует IDynamicCast, то в момент вызова функции будет вызываться IDynamicCast.QueryInterface.

public static bool ValidRef (WebService service, ifcHandle handle)

Метод ValidRef возвращает true, если передан нормальный хендл. При этом будет произведена попытка загрузки указанного интерфейса с вызовом соответствующего конструктора.