Как читать значения из БД и использовать их с соединителем SMTP в Mule 3 - PullRequest
1 голос
/ 21 сентября 2011

Я хотел бы прочитать некоторые детали электронной почты из БД, и вот как выглядит мой соединитель:

<jdbc:connector name="dbConnector" dataSource-ref="dataSource">
    <jdbc:query key="sqlQuery"
        value="SELECT from, to, subject, body FROM email WHERE status='PENDING'" />
    <jdbc:query key="sqlQuery.ack"
        value="UPDATE email SET status='IN PROGRESS' WHERE id=#[map-payload:id]" />
</jdbc:connector>

Затем я хотел бы использовать эти данные для отправки нескольких писем. Я ожидаю, что входящая конечная точка будет JDBC-коннектором, а исходящая-конечная точка будет SMTP-коннектором, но я не знаю, как хранить и использовать данные, прочитанные из этого Таблица. Есть ли способ сделать это, не прибегая к коду Java?

1 Ответ

1 голос
/ 21 сентября 2011

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

<!-- Set SMTP endpoint properties -->
<message-properties-transformer>
  <add-message-property key="subject" value="#[map-payload:subject]"/>
  ...
</message-properties-transformer>
<!-- Set the message Body as new payload -->
<expression-transformer>
  <return-argument evaluator="map-payload" expression="body"/>
</expression-transformer>
...