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