Списки значений для OData

Списки значений для OData

В этой статье мы рассмотрим настройку сервисов OData для списков значений в надстройке SaveToDB версии 10 и выше.

OData не предоставляет стандартных возможностей для описания обработчиков событий.

Существует два способа конфигурации отсутствующих возможностей OData:

  1. Использовать аннотации.
  2. Использовать объекты OData, которые возвращают настройки.

ODataDB использует аннотации списков значений для настройки встроенного клиента JavaScript. Надстройка SaveToDB также применяет эти аннотации.

Для сторонних сервисов OData разработчики могут опубликовать таблицу xls.handlers в виде EntitySet.

Надстройка SaveToDB определяет такие объекты настройки по сигнатуре полей и загружает их после загрузки документа метаданных.

Настройка списков значений аналогична следующим подходам:

Тем не менее, рекомендуется использовать объекты OData вместо объектов базы данных.

Например, конфигурация для таблицы выглядит следующим образом:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s02usp_cashbookcompany_idValidationLists02companiesTABLEid, +name
 s02usp_cashbookcompany_idParameterValuess02companiesTABLEid, +name

Предположим, что сервис OData публикует s02.usp_cashbook в схеме s02 с именем usp_cashbook. В этом случае левая часть остается неизменной, так как она указывает схему и имя типа объекта. Однако в полях обработчика событий должен быть указан EntitySet вместо таблицы.

Если сервис OData публикует таблицу в контейнере схемы default с именем s02_companies, конфигурация будет выглядеть следующим образом:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s02usp_cashbookcompany_idValidationListdefaults02_companiesENTITYSETid, +name
 s02usp_cashbookcompany_idParameterValuesdefaults02_companiesENTITYSETid, +name

Надстройка SaveToDB поддерживает список полей в поле HANDLER_CODE для EntitySet аналогично таблицам и представлениям. Однако лучшим решением будет создание отдельных объектов для определения колонок списков значений на стороне сервиса.

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

Ниже приведен пример конфигурации для получения списков значений с помощью хранимых процедур:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODETARGET_WORKSHEETMENU_ORDEREDIT_PARAMETERS
 s02usp_cashbookcompany_idValidationLists02xl_list_company_idPROCEDURE
 s02usp_cashbookcompany_idParameterValuess02xl_list_company_idPROCEDURE

Конфигурация для OData будет выглядеть следующим образом:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODETARGET_WORKSHEETMENU_ORDEREDIT_PARAMETERS
 s02usp_cashbookcompany_idValidationListdefaults02_xl_list_company_idFUNCTIONIMPORT
 s02usp_cashbookcompany_idParameterValuesdefaults02_xl_list_company_idFUNCTIONIMPORT

Эта конфигурация использует объекты FunctionImport вместо процедур.

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных.