Всем привет!

В своей недавней статье про поиск логов я привел пример кода, который будет получать id текущей сессии пользователя и выводить ее на экран по нажатии соответствующей кнопки меню. И все было бы неплохо, но нашелся один баг, который рушил весь мой красивый и добрый замысел. В приведенном мной коде есть такая строчка:

В ней есть большой трабл! Дело в том, что функция LoginName() возвращает логин пользователя в верхнем регистре. А как оказалось, в таблице S_SRM_TASK_HIST логин записывается не в верхнем регистре, а так, как его ввел пользователь при входе в приложение. А ввести он может ХоТь ВоТ тАк.

Вот тут  и встал вопрос о необходимости регистронезависимого поиска. И признаюсь Вам, может мне и должно быть стыдно, но за все время работы с Siebel я впервые столкнулся с этим вопросом. Может для Вас он и является чем-то самим собой разумеющимся, но у меня вот как-то так сложилось. Если есть такие как я, то Вам будет полезно.

Итак, все просто. Есть такая конструкция ~ LIKE. Если ее написать перед значением, то есть например вот так:

то поиск будет независим от регистра. Можно это легко проверить в приложении сделав запрос в любом поле лист или форм апплета с использованием ~ LIKE.

Это все, что я хотел сегодня сказать. Коротко, но важно!

P.S. Все же решил сделать маленькую добавку. Если сделать в Гугле запрос типа «Siebel Case Insensitive Search», то все ссылки будут давать информацию немного по другой теме. Вы можете во время проектирования задать независимость от регистра. Делается это в Siebel Tools на уровне столбцов таблиц. Находите нужный столбец (или только что созданный), щелкаете по нему правой кнопкой мыши и выбираете пункт Case Insensitivity… Далее появится довольно понятный визард, дальше рассказывать не буду.