SFD

Запросы объединенные в транзакции

Узел Отклика (RESPONSE) содержит в себе наборы запросов и функций объединенные в транзакции (TRANSACTION). Транзакция определяется тремя параметрами:

  • uid - код транзакции, для выполнения внутри sFF.

  • modelUid - модель привязанная к транзакции.

  • name - имя транзакции, для отображения в sFE.

В свою очередь транзакция может состоять из 4 разных узлов, порядок и количество узлов формируются разработчиком back-end:

  • QUERY - запрос к БД. Язык структурированных запросов предназначенный для управлением данными в БД, а именно вставка, изменение, удаление и выборки данных из БД.

  • DICT - запрос который возвращает структурированный набор данных, предназначенный для отображения справочника в sFE.

  • FUNC - функция, написанная на php, для дополнительной модернизации или изменении возвращаемого набора данных в sFE.

  • VAR - входная переменная, которая участвует в одном или нескольких запросах транзакции.

Внутри транзакции узлы QUERY и FUNC могут содержать подузел CASE, который определяет очередность выполнения запросов в БД. Об этом чуть позже, опишем атрибуты необходимые для корректной работы sFE по каждому узлу.

  • QUERY - это декларативный язык запросов на основе SQL.Поддерживает инструкции insert, update, delete, select, like, in, join и т.д. Строковые переменные, которые должны непосредственно вставляться в запрос, должны быть обрамлены апострофами('test'). Атрибуты необходимые для работы sFE:

    • uid - код запроса, используется sFF.

    • hostUid - код определяющий в какой БД должен выполняться данный запрос.

    • body - сам текст запроса.

    • name - имя запроса, для идентификации в sFE.

    • comm - комментарий к запросу, в sFE.

  • DICT - запрос к БД, для корректной работы данного механизма необходимо использовать исключительно инструкцию select, и возвращать 2-а параметра, id и value, где id - идентификационных код в справочнике, value - разименованное значение справочника. Операция join и все возможные скрещивания поддерживаются, а так же конкатенации. Пр. select UserTypeId as id, concat(UserTypeDesc,' (',UserTypeName,')') as value from ...

    • uid - код запроса, используется sFF.

    • hostUid - код определяющий в какой БД должен выполняться данный запрос.

    • body - сам текст запроса.

    • comm - комментарий к запросу, в sFE.

    • modelFieldUid - код компонента sFE который будет отображать данный справочник.

  • FUNC - функция реализованная на языке php.

    • uid - код функции, используется sFF.

    • name - имя функции в sFE

    • comm - комментарий функции в sFE.

  • VAR - переменная которая подставляется в запрос

    • name - имя переменной, определяется в sFE.

Транзакция внутри себя может содержать огромный перечень запросов и функций. Эти запросы и функции будут выполнятся последовательно друг за другом, сверху в низ, как они расположены в sFE. Для того, чтоб изменить порядок выполнения запросов существует узел CESE. Этот узел навешивается как подузел на FUNC и QUERY на каждый отдельно. Узел CASE несет в себе ссылку или ссылки на функцию или запрос, удовлетворяющему определенным условиям. Условия формирует программист back-end, например если поле возвращаемого запроса1 не равно пустому, тогда выполнять функцию1, если поле равно пустому значению, выполнить запрос2. т.е. в данном примере используется 2-а CASE условия. Атрибуты CASE:

  • uid - код CASE, используется sFF.

  • nextUid - ссылка на запрос или функцию при выполнении условия.

  • cond - условия сравнения, заданные программистом back-end.

  • val - значение сравниваемого условия.

  • field - поле возвращаемого запроса, по которому будет произведено сравнение.

Last updated