Отправить почту в формате HTML из Pentaho

Мне нужно просмотреть таблицу базы данных и отправить почту в формате html.

Ничего сложного, текстовое значение, за которым следует гиперссылка. введите здесь описание изображения

Я пробовал с преобразованием xml и xsl, но не смог получить желаемых результатов.

А ТАКЖЕ посоветуйте, лучше ли строить гиперссылку в PostGressql или можно из Pentaho

Я пробовал с вводом таблицы и шагом Javascript. Дело в том, что он выводит для каждой строки. мне нужно объединить и объединить вывод каждой строки, чтобы сформировать результирующий HTML

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


person Balaji    schedule 03.03.2018    source источник


Ответы (1)


С Pentaho: получите ваши данные с помощью table input, создайте html (например, с java script), получите параметры почты (адрес, вложение и т. д.,...) с шага grid или constant и отдайте все на mail шаг.

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

С помощью javascript вы создали -тег по строке с именем html, но вам нужно только одно сообщение. Таким образом, вы группируете их с шагом Group by (без Group field, тема = html, тип = Concatenate strings separated by, значение = пусто). Затем вы можете удалить его на шаге Mail.

Но для шага Mail требуется дополнительная информация (получатель, отправитель, тема, сервер, порт и т. д.). Вы можете поместить их в поток с шагом Constant.

С учетом вашего варианта использования вас может удивить, что вам нужно поместить эти данные в поток, а не передать блок на шаге Mail. Это связано с тем, что этот шаг предназначен для отправки почты, персонализированной для каждого получателя.

И теперь, когда вы знаете, как это сделать, воздержитесь от отправки 100 000 писем каждому, кому сможете.

person AlainD    schedule 03.03.2018
comment
Также обратите внимание, что в javascript Pentaho вам не обязательно помещать html-код в строковые литералы, поскольку вы можете использовать литералы XML, как указано в e4x(developer.mozilla.org/en-US/docs/Archive/Web/E4X/): что-то вроде var output = <html><head/><body>EDW - <a href="{edw_link}">{edw_link_text}</a></body></html>. Возможно, вам потребуется преобразовать xml в строку с помощью метода output.toXMLString() (не уверен, что некоторое время назад я работал с Pentaho). В фигурных скобках вы можете использовать имена переменных или столбцов — они будут заменены их значениями. - person Andrei Luksha; 03.03.2018
comment
Спасибо. Как вы перебираете записи с помощью javascript. Предполагая, что у меня есть 2 столбца. Column1 Column2 Корпоративное хранилище данных (EDW) 3610985 Группа корпоративного ИТ-соответствия и контроля (Equity Edge Online) 3610983 - person Balaji; 04.03.2018
comment
Ну, шаг javascript не повторно инициализирует переменные, которые не были объявлены с ключевым словом var. Поэтому вы можете накапливать значения html_Column2 в html_Column1. Если вам нужно инициализировать html_Column, щелкните правой кнопкой мыши вкладку (с именем Script 1), добавьте новую вкладку, затем щелкните правой кнопкой мыши новую вкладку (с именем Item 0), определите ее как StartScript и поместите туда var html_Column1 = "start value". - person AlainD; 04.03.2018
comment
извините, не могу уследить. мое намерение состоит в том, чтобы получить данные из каждой строки и добавить их к глобальной переменной, чтобы я мог отправить глобальную переменную по почте в виде содержимого html. - person Balaji; 04.03.2018
comment
Я объявил переменную среды, добавил данные из каждой строки и, наконец, отправил переменную на шаг Mail в виде html-содержимого. Оно работает. Не уверен, что подход правильный, но он работает - person Balaji; 05.03.2018