Работа со статикой (персоны, документы, коды, контакты и т. д.)

Статикой считаются такие виды объектов, как, например, персонадокументкодконтакт и так далее. 

Кроме того, некоторые объекты связаны друг с другом при помощи отношения "многие-ко-многим", в этом случае при помощи API можно работать не только с самими объектами, но и с их связями (так называемые Relations).

Для работы со статикой существует 2 типа API:

  • Простой CRUD;

  • Orchestrated API.

  1. Простой CRUD позволяет выполнять простые операции с примитивными объектами базы данных (например, "Контакт", "Документ", "Код").

    На каждый тип объектов в общем случае распространяется три типа операций:

    1. получить список объектов в рамках области видимости;

    2. сохранить/удалить или отредактировать объект;

    3. операция выгрузки объекта по первичному ключу (например, для контактов: получить список контактов по идентификатору персоны (List), получить конкретный контакт по его идентификатору (Get), изменить или создать новый контакт (Save)).

    При этом внутри объекта нет никаких связей с другими сущностями - например, в "Персоне" нет документов и ссылок на коды.

    Данный API следует использовать в том случае, если требуется проводить низкоуровневые операции с объектами, так как API позволяет контролировать, в том числе, и сложные связи, как, например, зависимость кодов от типов услуг или других кодов.

     

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

     

  2. Orchestrated API - удобное API с инкапсулированной бизнес-логикой, предназначенное для выполнения высокоуровневых операций. Также ряд методов этого API позволяет работать с объектами старой и новой версии одновременно.
    При использовании данного механизма все бизнес-объекты представлены в виде иерархических структур со всеми зависимостями.

Вопрос производительности запросов - ключевой при выборе типа API для вашего приложения.

Например, в Orchestrated API, чтобы поменять один контакт, надо выгрузить всю персону, поменять контакт и все загрузить заново обратно в систему, что приведет к выполнению целой серии запросов к БД, а в CRUD, чтобы поменять контакт, нужно просто передать всю его информацию. Также CRUD позволяет проводить атомарные операции - например, получить все контакты, привязанные к персоне с определенным id_Person.

____