Netsuite! использование freemarker для получения названия месяца с даты ДД / ММ / ГГГГ не работает - PullRequest
0 голосов
/ 04 августа 2020

Проблема

Я работаю над текстом шаблона электронного письма, поэтому я хотел бы изменить дату ДД / ММ / ГГГГ на ММММ. В шаблоне есть два его экземпляра. Эти два экземпляра принадлежат 2 разным полям даты, однако их конфигурация одинакова. Допустим, у меня есть date_field1 и date_field2. Когда я делаю следующее в date_field1, он работает нормально, а в date_field2 - нет, и я получаю следующую ошибку.

Я проверил тип mydate , просто чтобы конечно, и это дата . Когда я просто делаю ?string, он работает нормально и содержит значение даты, но с .MMMM выдает ошибку. Любая помощь или предложение будут отличными.

Код

Working: <#assign mydate1=transaction.date_field1 /> ${mydate1?string.MMMM?lower_case}

Not working: <#assign mydate2=transaction.date_field2 /> ${mydate2?string.MMMM}

Ошибка

введите описание изображения здесь

1 Ответ

0 голосов
/ 04 августа 2020

Если у вас есть фактическое поле даты, строка формата выглядит примерно так:

<#assign mydate=transaction.date_field2?date["MMMM"]>

И, конечно, нет поля с именем date_field2, поэтому я предполагаю, что эта метка предназначена в качестве упрощенного примера.

Обратите внимание: вы также можете попробовать:

<#assign mydate=transaction.date_field2?string["MMMM"]>

Но я думаю, что это было для более свежей версии Freemarker, чем поддерживает Netsuite.

Наконец, вы можете установить общую строку на текущую дату формат, который будет существовать от места в вашем коде до того места, где вы его сбросили. Я обнаружил, что мне нужно установить его как для date, так и для datetime, потому что некоторые поля 'date' интерпретируются Freemarker как datetime, даже если они не должны быть:

<#setting date_format="MMMM">
<#setting datetime_format="MMMM">
${transaction.date_field2}
...