Идентификация

Использование регулярных выражений в запросах

Если в запросе нужно преобразовать переменную из контекста исполнения (например, телефон прользователя, или его ФИО), то это можно сделать, используя специальный синтаксис: регулярные выражения + шаблоны на основе freemarker.

Синтаксис должен удовлетворять правилам используемого модуля freemarker: https://freemarker.apache.org/docs/ref_builtins_string.html

Рассмотрим пример: в параметрах идентификации передаем номер телефона, но его формат нужно изменить для системы, которая вызывается. Т.е. телефон вида +78008880022 нужно передать в формате (800)888-00-22.

С помощью регулярного выражения можно на лету изменить формат номера:

  • в строке с самим запросом (поле Адрес запроса)

    <#assign res = userPhone?replace('\\D', '', 'r')?matches(r"(\d{1})(\d{3})(\d{3})(\d{2})(\d{2})")>http://host/(${res?groups[2]})${res?groups[3]}-${res?groups[4]}-${res?groups[5]}

     

 

  • в отдельных параметрах (блок Параметры запроса, в значении)

<#assign res = userPhone?replace('\\D', '', 'r')?matches(r"(\d{1})(\d{3})(\d{3})(\d{2})(\d{2})")>(${res?groups[2]})${res?groups[3]}-${res?groups[4]}-${res?groups[5]}
<#assign res = userPhone?replace(‘800’, ‘9’)>${res}