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?
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><br /> <from expression="bpws:getVariableData('NieuweBoekAanvraag'<br /> ,'BoekAanvragenCollection'<br /> ,'/ns3:BoekAanvragenCollection/ns3:BoekAanvragen/ns3:emailGeinteresseerden')"/><br /> <to variable="varNotificationReq" part="EmailPayload"<br /> query="/EmailPayload/ns2:Cc"/><br /></copy> <br />
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.