Integer in template

Обсуждаем TrackStudio по-русски

Integer in template

Postby dsaburov » Fri Jul 14, 2017 4:04 pm

TrackStudio 5.0.7.20161213

Здраствуйте, вопрос по использованию шаблонов для отправки почтовых уведомлений.
У нас есть пользовательское поле типа "integer" (на уровне рабочего процесса).
В почтовых уведомлениях его содержимое отображается например так: "111,222", а хотим так: "111222"
Я полез в файл "default_html.ftl", нашёл конструкцию
<#if udf.type == 'integer'>
${uValue}
</#if>

и заменил на:
<#if udf.type == 'integer'>
${uValue?c}
</#if>

На тестовом сервере это сработало, но на продакшене получил ошибки при попытке отправить email, например:
2017-07-14 08:47:11,167 ERROR freemarker.runtime:error:96 - Template processing error: "uValue is not a number, it is freemarker.template.SimpleScalar"

uValue is not a number, it is freemarker.template.SimpleScalar
The problematic instruction:
----------
==> ${uValue?c} [on line 84, column 21 in 2c90802517f2b3180117f34888fe004b]
in user-directive viewUdf [on line 646, column 17 in 2c90802517f2b3180117f34888fe004b]
----------

Попробовал на тестовом сервере такой вариант:
<#if udf.type == 'integer'>
${uValue?replace(",", "")}
</#if>

и получил уже ошибку:
Expected string. uValue evaluated instead to freemarker.template.SimpleNumber on line 84, column 23 in 2c90802517c4b5b40117c4b7e45c0002.
The problematic instruction:
----------
==> ${uValue?replace(",", "")} [on line 84, column 21 in 2c90802517c4b5b40117c4b7e45c0002]
in user-directive viewUdf [on line 647, column 17 in 2c90802517c4b5b40117c4b7e45c0002]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateException: Expected string. uValue evaluated instead to freemarker.template.SimpleNumber on line 84, column 23 in 2c90802517c4b5b40117c4b7e45c0002.


Я слабо разбираюсь в FTL, получается что на разных серверах поле "integer" имеет разный тип (строка или число)?
Как лучше "очистить" число от лишних символов?
Позже попробую на продакшене это:
<#if uValue?is_number>${uValue?c}<#else>${uValue?replace(",", "")}</#if>
dsaburov
 
Posts: 7
Joined: Tue Jun 27, 2017 12:04 pm

Re: Integer in template

Postby dsaburov » Mon Jul 17, 2017 4:52 pm

Вроде решил проблему, добавив в начало файла:
<#setting number_format="computer">
dsaburov
 
Posts: 7
Joined: Tue Jun 27, 2017 12:04 pm


Return to TrackStudio Support [Russian]

Who is online

Users browsing this forum: No registered users and 22 guests

cron