2 votes

WSO2 BPS - activité de publipostage

J'ai besoin d'une activité qui envoie un courrier à un certain moment du processus BPEL.

Existe-t-il une "activité de courrier" ou dois-je coder une sorte de service web à invoquer pour appeler le service et le laisser envoyer le courrier ?

L'utilisation de l'ESB pour cette activité pourrait-elle être une solution ?

Comment relier les deux (encore une fois avec un service web ou s'il y a un moyen plus rapide et plus facile de les relier) ?

Serait-ce une bonne solution dans ce cas d'ajouter la fonction ESB à BPS pour lui ajouter la fonction de transport sans avoir à ajouter l'ESB juste pour cela ?

J'ai également vu qu'il y a quelques exemples qui utilisent le transportSender dans axis2.xml plutôt que d'utiliser un proxy, mais il semble que cette méthode envoie le courrier toujours à la même adresse. J'ai besoin de pouvoir envoyer un courrier à un sujet (et éventuellement cc et bcc) à partir des paramètres du processus (lors d'une étape précédente, j'ai lu les données de la base de données et il y a l'information sur l'adresse), est-ce que le tensportSender est la voie à suivre ou dois-je développer le service de courrier ?

Un indice ?

Gracias

Luca

2voto

Jose Maria Points 217

Comme mentionné précédemment, il n'y a actuellement pas d'activité de publipostage intégrée à WSO2 BPEL, mais vous pouvez obtenir cette fonctionnalité en invoquant un service web externe (DSS, AS) à partir du flux de travail BPEL.

J'ai créé un flux de travail avec une telle fonctionnalité il y a quelques jours. J'ai créé un service Axis2 qui n'est qu'un code Java pour l'envoi d'e-mails, dans lequel je peux fournir des paramètres tels que l'objet, le contenu et le destinataire, de sorte qu'une fois que vous invoquez le service, vous pouvez envoyer l'e-mail à n'importe quelle adresse e-mail. J'ai déployé le service Axis2 mentionné dans un WSO2 DSS et je l'ai invoqué à partir d'un flux de travail BPEL que j'ai ensuite déployé dans WSO2 BPS.

Le code Java que j'ai utilisé pour envoyer l'email est le suivant :

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MailSender {

    public static void main(String emailAddress, String content){

        String host = "smtp.gmail.com";
        String from = "example@gmail.com";
        String subject = "Subject example";

        Properties props = System.getProperties();
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.user", from);
        props.put("mail.smtp.password", "");
        props.put("mail.smtp.port", "587");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.auth", "true");

        try{
            Session session = Session.getDefaultInstance(props, null);
            InternetAddress to_address = new InternetAddress(emailAddress);

            MimeMessage message = new MimeMessage(session);         
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, to_address);
            message.setSubject(subject);        
            message.setContent(content, "text/html; charset=UTF-8");

            Transport transport = session.getTransport("smtp");
            transport.connect("smtp.gmail.com","example@gmail.com","Password");
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();

            }

            catch (MessagingException mex) {
            System.out.println("send failed, exception: " + mex);
            }
    }
}

0voto

Hasitha Aravinda Points 451

Actuellement, il n'y a pas d'activité de publipostage dans BPS en tant qu'activité intégrée.

Mais oui, vous pouvez accomplir votre tâche en combinant ESB et BPS. Vous pouvez procéder comme suit. Exposez d'abord le service d'envoi d'e-mails de l'ESB en tant que proxy, puis appelez ce service à l'aide du BPS. Il est préférable d'utiliser un ESB séparé pour cette tâche, car j'ai rencontré quelques difficultés lors de l'intégration des fonctionnalités ESB dans BPS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X