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

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

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

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

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

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

Для сторонних сервисов 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 вместо процедур.

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