Oracle BPEL PM 10.1.3 – Sending an Email to multiple recipients

It might just be the smallest topic I have ever blogged about. But then again, it took me some time to figure this out, so I figured I might as well share it with you. Here is the situation: while preparing a proof of concept with Oracle BPEL Process Manager 10.1.3 (the SOA Suite Preview now available on OTN), I wanted my BPEL process to send an email, not just to a single adressee, but to a list of recipients. The BPEL variables contained the information of the email-adresses, but I did not know how to pass the information to the notification service: did I have to pass a NodeList, a semi-colon separated list, a comma or space separated list of email adresses? Or was it not possible at all to send emails to multiple recipients in the To:, CC: or BCC: fields?

Oracle BPEL PM 10.1.3 - Sending an Email to multiple recipients bpelMailMultiple1 

....
 

Well it turned out to be quite simple: the cc-field in the EmailPayload of the Notification Service takes a String. If that String contains a comma separated list of email-addresses, it will send emails to each of the adresses in that list. For example: gerwin@localhost,rogier@localhost. The BPEL section that sets the CC item is nothing more complex than:

<copy>
<from expression="bpws:getVariableData('NieuweBoekAanvraag'
,'BoekAanvragenCollection'
,'/ns3:BoekAanvragenCollection/ns3:BoekAanvragen[1]/ns3:emailGeinteresseerden')"/>
<to variable="varNotificationReq" part="EmailPayload"
query="/EmailPayload/ns2:Cc"/>
</copy>

The emailGeinteresseerden is a field of time xsd:string, that is populated by reading from a database record. The field contain a simple, comma separated string. It is that simple.