1. Создать схему Исходный код
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлена схема.
-
На панели инструментов реестра раздела нажмите Добавить —> Исходный код (Add —> Source code).
-
В дизайнере схем заполните свойства схемы:
- Код (Code) — "UsrCustomConfigurationService".
- Заголовок (Title) — "CustomConfigurationService".
Для применения заданных свойств нажмите Применить (Apply).
2. Создать класс сервиса
- В дизайнере схем добавьте пространство имен, вложенное в Terrasoft.Configuration. Название может быть любым, например, UsrCustomConfigurationServiceNamespace.
- C помощью директивы using добавьте пространства имен, типы данных которых будут задействованы в классе.
- Добавьте название класса, которое соответствует названию схемы (свойство Код (Code)).
- В качестве родительского класса укажите класс Terrasoft.Nui.ServiceModel.WebService.BaseService.
- Для класса добавьте атрибуты [ServiceContract] и [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)].
3. Реализовать метод класса
В дизайнере схем добавьте в класс метод public string GetContactIdByName(string Name), который реализует конечную точку пользовательского веб-сервиса. С помощью EntitySchemaQuery метод отправит запрос к базе данных. В зависимости от значения параметра Name, отправленного в строке запроса, тело ответа на запрос будет содержать:
- Идентификатор контакта (типа строка) — если контакт найден.
- Идентификатор первого найденного контакта (типа строка) — если найдено несколько контактов.
- Пустую строку — если контакт не найден.
Исходный код пользовательского веб-сервиса UsrCustomConfigurationService представлен ниже.
На панели инструментов дизайнера нажмите Сохранить (Save), а затем Опубликовать (Publish).
Результат выполнения примера
В результате выполнения примера в Creatio появится пользовательский веб-сервис UsrCustomConfigurationService типа REST с конечной точкой GetContactIdByName.
Из браузера обратитесь к конечной точке GetContactIdByName веб-сервиса и в параметре Name передайте имя контакта.
При обращении к веб-сервису без предварительной авторизации возникнет ошибка.
Авторизуйтесь в приложении и выполните запрос еще раз. Если контакт, указанный в параметре Name, найден в базе данных, то в свойстве GetContactIdByNameResult будет возвращено значение идентификатора контакта.
Если контакт, указанный в параметре Name, не найден в базе данных, то в свойстве GetContactIdByNameResult будет возвращена пустая строка.