Configuration des services de transport utilisés pour les messages

Utilisez les méthodes génériques de la commande SendMsgCmd pour configurer les services de transport utilises pour les messages.

public void setConfigData(String key, String value) public void setNLConfigData(String key, String language, String value)

Ces méthodes génériques de la commande SendMsgCmd permettent à l'utilisateur de configurer les services de transport utilisés pour les messages. Le paramètre key fait référence au nom administratif servant à identifier l'attribut à modifier. Le paramètre value est la valeur à affecter. L'appel de ces méthodes va substituer les valeurs définies ici à celles de la console d'administration. La dernière méthode permet de définir la configuration des données en fonction de la langue. Reportez-vous au tableau ci-dessous contenant les transports par défaut disponibles pour le système de messagerie, et les attributs qui s'appliquent à chacun.

Remarque : Le paramètre language représente l'attribut LANGUAGE_ID du tableau LANGUAGE. Voir par exemple l'attribut subject dans le tableau ci-dessous. La méthode addMember constitue une autre manière de définir des destinataires du courrier électronique. Voir l'API pour en savoir plus sur la classe de messagerie.

Attributs de configuration

Le tableau ci-dessous montre comment le paramètre key peut être utilisé pour configurer les messages. Les transports par défaut disponibles pour le système de messagerie utilisent les attributs du tableau qui suit.

Notes :
  • Si vous ne souhaitez utiliser aucun des transports de la liste, vous pouvez en développer un en vous fondant sur les exemples de la rubrique Exemple d'adaptateur.
  • Les clés d'attribut sont sensibles à la casse
  • Pour les adresses électroniques :
    • Les adresses doivent être séparées par une virgule.
    • Conformément à la norme RFC 822, les adresses e-mail sur Internet contenant des espaces doivent être encadrées par des guillemets. Par exemple, "société<nom@masociété.com".
  • Tous les noms de file d'attente JMS et les noms de fabrique de connexion de files d'attente doivent correspondre avec les noms des files d'attente et des fabriques de connexion de files d'attente définis dans la console d'administration de WebSphere Application Server.

Affichage des propriétés remplacées

La valeur remplacée par la commande appelant la méthode n'est pas visible dans la console d'administration. Elle peut cependant être vue entre la création du message et son envoi par la tâche SendTransactedMsg du planificateur :
  1. Ouvrez la console d'administration et sélectionnez Site dans la page Console d'administration - Sélection de site/magasin.
  2. Accédez à Suivi > Affichage des messages non envoyés.
  3. Sélectionnez le transport de votre choix dont le statut d'envoi est Pending.
  4. Cliquez sur Rechercher.
  5. Cliquez sur l'ID de message du dernier message de la dernière page.
  6. Les propriétés remplacées sont affichées, avec les autres propriétés, en haut de la page.
Transport Clé d'attribut Description
Adaptateur de messagerie nom utilisateur Nom d'utilisateur pour la connexion au serveur SMTP.
Remarque : Une fois que le nom d'utilisateur est indiqué, la connexion SSL au serveur SMTP est requise.
mot_de_passe Mot de passe pour authentifier l'utilisation du serveur SMTP.
subject Objet de l'e-mail. Vous pouvez préciser un objet par environnement local.
Remarque : Remarque : Si un objet personnalisé n'est pas utilisé par le système, il peut y avoir une configuration par défaut pour la commande d'envoi d'e-mail.
Utilisez l'instruction suivante pour rechercher l'entrée et la supprimer :
SELECT * FROM PROFNVSTRG WHERE PROFILE_ID = (SELECT PROFILE_ID FROM PROFNVSTRG WHERE PROFILEATTNAME LIKE 'subject_-%' AND PROFILEATTVALUE = '<your language specific subject>' ) AND PROFILEATTNAME = 'subject_key' AND PROFILEATTVALUE LIKE '_TXT_%'
recipient Adresse e-mail des destinataires.
expéditeur Adresse e-mail de l'expéditeur.
hôte Nom d'hôte qualifié complet ou adresse IP du serveur SMTP utilisé pour l'envoi des messages.
protocole Protocole de connexion à l'hôte de messagerie.
port Port SMTP utilisé pour l'envoi du message. (25 dans la plupart des systèmes)
retryDuration Indiquez la période (en nombre d'heures) pendant laquelle la tentative de connexion au serveur doit être renouvelée sans diminuer le nombre de tentatives.
sendPartial Comportement au cas où il y a plusieurs destinataires et certaines adresses e-mails non valides. Cette valeur est true si le courrier électronique est envoyé en dépit du fait que certaines adresses sont non valides. La valeur est false si l'e-mail n'est pas envoyé du tout.
Remarque : Cette propriété dépend du serveur SMTP. Il est de sa seule responsabilité de prendre en compte cet indicateur.
contentType Type de contenu, par exemple text/plain ou text/html. La valeur par défaut est texte/normal.
BCC Adresse(s) e-mail pour envoi d'une copie masquée du message.
CC Adresse(s) e-mail pour envoi d'une copie du message.
replyTo L'adresse de réponse à l'e-mail.
Adaptateur de fichier location Emplacement du fichier cible de l'écriture.
Nom du fichier Nom du fichier cible de l'écriture.
mode Type d'écriture.
  • 0 - ajout, ou création si le fichier n'existe pas
  • 1 - écrasement
Adaptateur pour IBM MQ factory Indiquez le nom JMS de la fabrique de connexion de files d'attente.
inQueue File d'attente entrante pour la réception des messages de réponse lorsque le service d'envoi sendReceiveImmediate est utilisé (par certaines commandes).
errorQueue Indiquez le nom JMS de la file d'attente d'erreur, qui contient les messages n'ayant pas pu être traités.
outQueue Indique le nom JMS de la file de sortie dans laquelle des messages sortants sont placés.
timeOut Indiquez le délai, en secondes, pendant lequel le système de messagerie doit attendre une réponse si le mode Envoi/Réception (mode = 1) a été spécifié. Si aucune réponse n'est reçue au cours du délai spécifié, le système renvoie un message Null. La valeur par défaut est de 60 secondes.
mode Mode de traitement du message sortant. La valeur par défaut est 0, ce qui limite le traitement à la sortie du message. Ce mode doit être utilisé avec le service d'envoi sendImmediate. Si la valeur est 1, le service d'envoi sendReceiveImmediate est utilisé par l'appel de la commande, puis la commande attend une réponse jusqu'à la fin du délai défini par "timeOut". Sinon, la valeur de timeOut n'est pas utilisée.
JMSExpiration Délai, en secondes, à compter de l'heure d'envoi d'un message pendant lequel le fournisseur de service JMS cible doit le conserver avant de le supprimer d'une file d'attente. La valeur par défaut 0 implique que le message ne sera pas conservé jusqu'à sa suppression par une application JMS.
JMSPriority Priorité du message. Cette valeur varie de 0 à 9, 9 étant le plus urgent. La valeur par défaut est 4.
JMSDeliveryMode Mode d'envoi du message. Le message est envoyé en mode permanent si la valeur est 2, et en mode non permanent si la valeur est 1. La valeur par défaut dépend de la file d'attente. Les messages envoyés en mode permanent restent sur le serveur MQ et sont disponibles au redémarrage. Pour plus d'informations, reportez-vous à la documentation du fournisseur JMS.
JMSHeaderPropertyN (où N est un identificateur unique arbitraire, par exemple 1, 2, 3...) Zones spéciales utilisées pour stocker des informations d'en-tête spécifiques au fournisseur. Si plusieurs JMSHeaderProperty sont nécessaires, un chiffre unique ou un autre identificateur doit être ajouté à la fin de l'attribut "Admin" du nœud EditableProperty (par exemple, de JMSHeaderProperty 1 à JMSHeaderPropertyN).
Connecteur HTTP et services Web sur connecteurs HTTP URL URL de destination du message
contentType Type de contenu du message
userName Nom d'utilisateur pour l'authentification. Pour HTTP sur services Web, c'est le nom d'utilisateur des services Web.
mot_de_passe Mot de passe pour l'authentification. Pour HTTP sur services Web, c'est le mot de passe pour les services Web.
errorLifeExpectancy Ce connecteur possède une caractéristique qui lui est propre : lorsqu'une exception se produit lorsqu'il exécute la requête en fonction des propriétés de la connexion, le connecteur attend cette durée spécifiée (en secondes) avant d'autoriser l'exécution de la même requête. Cela évite de submerger le système d'arrière-plan de demandes s'il n'est pas disponible ou ne répond pas. Certaines exceptions de communication sont interceptées et un délai d'attente de cette durée leur est attribué. Si une nouvelle demande basée sur les mêmes informations de connexion est émise, l'exception mise en cache est lancée et la requête n'est pas exécutée. Une fois le délai d'attente expiré, la requête est émise normalement. Le but de ce mécanisme est de fournir une exception à l'appelant tout en évitant l'envoi répété de demandes à un système d'arrière-plan temporairement indisponible.
connectTimeout Délai d'expiration, en secondes, pour configurer une connexion à l'URL. Ne spécifiez pas de valeur, ou spécifiez 0 si vous souhaitez un délai d'expiration infini.
readTimeout Délai d'expiration, en secondes, lors de la lecture à partir des flux d'entrée lorsqu'une connexion à une URL est établie. Ne spécifiez pas de valeur, ou spécifiez 0 si vous souhaitez un délai d'expiration infini.
Connecteur Service Web sur JMS factory Nom de la fabrique de connexions de file d'attente JMS.
inQueue File d'attente entrante pour la réception des messages de réponse lorsque le service d'envoi sendReceiveImmediate est utilisé (par certaines commandes).
errorQueue Indiquez le nom JMS de la file d'attente d'erreur, qui contient les messages n'ayant pas pu être traités.
outQueue File d'attente sortante dans laquelle sont mis les messages sortants.
userName Nom d'utilisateur pour l'authentification de base.
mot_de_passe Mot de passe pour l'authentification de base.
timeOut Délai d'attente (en secondes) d'un éventuel message de réponse de la part d'un système externe. La valeur par défaut est 60.
mode Mode de traitement du message sortant. La valeur par défaut est 0, ce qui limite le traitement à la sortie du message. Ce mode doit être utilisé avec le service d'envoi sendImmediate. Si la valeur est 1, le service d'envoi sendReceiveImmediate est utilisé par l'appel de la commande, puis la commande attend une réponse jusqu'à la fin du délai défini par "timeOut". Sinon, la valeur de timeOut n'est pas utilisée.
JMSExpiration Délai, en secondes, à compter de l'heure d'envoi d'un message pendant lequel le fournisseur de service JMS cible doit le conserver avant de le supprimer d'une file d'attente. La valeur par défaut 0 implique que le message ne sera pas conservé jusqu'à sa suppression par une application JMS.
JMSPriority Priorité du message. Cette valeur varie de 0 à 9, 9 étant le plus urgent. La valeur par défaut est 4.
JMSDeliveryMode Mode d'envoi du message. Le message est envoyé en mode permanent si la valeur est 2, et en mode non permanent si la valeur est 1. La valeur par défaut dépend de la file d'attente. Les messages envoyés en mode permanent restent sur le serveur MQ et sont disponibles au redémarrage. Pour plus d'informations, reportez-vous à la documentation du fournisseur JMS.
JMSHeaderPropertyN (où N est un identificateur unique arbitraire, par exemple 1, 2, 3...) Zones spéciales utilisées pour stocker des informations d'en-tête spécifiques au fournisseur. Si plusieurs JMSHeaderProperty sont nécessaires, un chiffre unique ou un autre identificateur doit être ajouté à la fin de l'attribut "Admin" du nœud EditableProperty (par exemple, de JMSHeaderProperty 1 à JMSHeaderPropertyN).
targetService Opération de port à appeler. Par exemple, "InventoryServices". On peut trouver les services cible dans le WSDL du fournisseur de services.
Notes :

Pour définir les zones JMSExpiration, JMSPriority et les autres zones d'en-tête spécifiques au fournisseur JMS d'un message JMS sortant, des nœuds EditableProperty supplémentaires doivent être ajoutés à la définition InteractionSpec de JCAJMSInteractionSpec :

  • setJMSExpiration
  • setJMSPriority
  • setJMSDeliveryMode
  • setJMSHeaderProperty

Cette définition se trouve sous le paramètre OutboundConnector JMS.

  1. Sauvegardez votre HCL Commerce fichier de configuration. Dans le cas où vous voudriez annuler ce correctif, vous auriez besoin de restaurer le fichier XML original de configuration.
  2. Ajoutez-y la section suivante :
    
    <OutboundConnector default="true"
    id="3"
    name="JMS"
    retries="3">
    <JNDI JndiName="eis/JCAJMS"
    display="false" />
    ...
    
    
    <InteractionSpec ClassName="com.ibm.commerce.messaging.adapters.jcajms.JCAJMSInteractionSpec"
    default="true">
    ...
    
    
    <EditableProperty Admin="JMSExpiration"
    display="false"
    editable="Yes"
    name="setJMSExpiration"
    value="60" />
    
    
    <EditableProperty Admin="JMSPriority"
    display="false"
    editable="Yes"
    name="setJMSPriority"
    value="4" /> <!-- the value ranges from 0 to 9. The default value is 4. -->
    
    
    <EditableProperty Admin="JMSDeliveryMode"
    display="false"
    editable="Yes"
    name="setJMSDeliveryMode"
    value="2" /> <!-- the value is 2 for persistent, 1 for non-persistent -->
    
    
    <EditableProperty Admin="JMSHeaderProperty1"
    display="false"
    editable="Yes"
    name="setJMSHeaderProperty"
    value="JMS_IBM_MsgType='2'" /> <!-- sample value only -->
    
    
    <EditableProperty Admin="JMSHeaderPropertyN"
    display="false"
    editable="Yes"
    name="setJMSHeaderProperty"
    value="JMS_IBM_Format='IBM JMS'" /><!-- sample value only -->
    

    Tous les messages sortants passant par ce connecteur ont par défaut une valeur de 60 secondes pour JMSExpiration. Cette valeur est personnalisable dans la console d'administration lorsqu'un type de message est affecté au transport MQ Transport.

    Remarque : La valeur de l'attribut Admin doit être unique dans le nœud InteractionSpec. On peut, si nécessaires, avoir plusieurs éléments EditableProperty. Si plusieurs JMSHeaderProperty sont nécessaires, un chiffre unique ou un autre identificateur doit être ajouté à la fin de l'attribut "Admin" du nœud EditableProperty (par exemple, de JMSHeaderProperty 1 à JMSHeaderPropertyN). Vous devez modifier la valeur de l'attribut avec la paire nom-valeur requise. La valeur à l'intérieur de la paire nom-valeur doit être mise entre deux apostrophes (').
  3. Affectez à nouveau le type de message à la méthode de transport MQ. Cette opération garantit que les messages sortants de ce type contiendront le jeu de propriétés d'en-tête correspondant.
Les transports supplémentaires suivants sont disponibles dans HCL Commerce version 7 :
Transport Clé d'attribut Description
SMS-HTTP APIKey Nom du paramètre de l'identificateur d'API.
APIValue Unique identificateur d'API de service associé au compte.
CharacterLimit Nombre maximal de caractères d'un message. La valeur par défaut est 160.
CustomParameters Paramètres supplémentaires à transmettre à l'API HTTP.
Remarque : Ces paramètres d'URL doivent être codés manuellement.
Noeud final Emplacement de l'URL de l'API HTTP du service de télécommunication.
MaxRecipients Nombre maximal de destinataires envoyés à la passerelle en une seule demande. Pour les passerelles qui ne prennent pas en charge l'envoi en masse des messages, la valeur doit être 1.
MessageKey Nom du paramètre de l'identificateur du message.
MessageValue Message par défaut s'il n'est pas remplacé par un fichier JSP personnalisé.
Mot de passe Mot de passe pour l'authentification au service. Les mots de passe sont stockés sous forme d'une valeur chiffrée par la clé du commerçant.
PasswordKey Nom du paramètre de l'identificateur du mot de passe.
RecipientDelimiter Délimiteur entre les destinataires du paramètre recipient.
RecipientKey Nom du paramètre de l'identificateur du destinataire.
RecipientValue Numéro de destination du ou des destinataires.
SenderKey Nom du paramètre de l'identificateur de l'expéditeur.
SenderValue Nom ou numéro de l'expéditeur.
usePostMethod Indique si la méthode HTTP-POST est utilisée. Si la valeur est false, la méthode HTTP-GET est utilisée.
UserNameKey Nom du paramètre de l'identificateur du nom d'utilisateur.
UserNameValue Nom d'utilisateur du service.
SMS-WS CharacterLimit Nombre maximal de caractères d'un message. La valeur par défaut est 160.
Endpoint URI du service de passerelle Parlay X 3.0.
Message Message par défaut s'il n'est pas remplacé par un fichier JSP personnalisé.
Mot de passe Mot de passe pour l'authentification au service. Les mots de passe sont stockés sous forme d'une valeur chiffrée par la clé du commerçant.
Destinataire Numéro de destination du ou des destinataires.
SenderValue Nom ou numéro de l'expéditeur.
UserNameValue Nom d'utilisateur enregistré de ce service Web.
Notes :

Lorsque vous intégrez les transports SMS dans HCL Commerce :

  • Les clés d'attribut fournies sont des paires nom-valeur génériques communes à la plupart des services de passerelle prenant en charge l'interface API HTTP. Certaines des zones fournies peuvent être facultatives en fonction des configurations de service disponibles et variables. La zone customParameters offre des options de personnalisation supplémentaires, ce qui accroît la compatibilité avec les services de passerelle.
  • Les clés d'attribut fournies sont des URL codées valides pour une transmission par chaîne URL, sauf indication contraire. D'un autre côté, la valeur de CustomParameters n'est pas une URL codée, ce qui offre une plus grande flexibilité dans la gestion des valeurs personnalisées. C'est pourquoi les paramètres d'URL de customParameters doivent être codés manuellement.
  • L'adaptateur HTTP SMS peut être configuré pour fonctionner avec différents services de passerelle de télécommunication fournis par des tiers, prenant en charge l'interface HTTP. Les demandes sont initialisées à l'aide d'une requête POST HTTP, les valeurs des paramètres respectant l'API HTTP spécifiée individuellement.
  • Le contenu du message correspondant au paramètre MessageKey, et l'adresse du destinataire correspondant au paramètre RecipientKey, sont générés dynamiquement en fonction du type de message et de l'identité du client. Une fois générées, ces zones sont transmises à l'adaptateur pour l'envoi du message.
  • Le paramètre RecipientDelimiter est utilisé pour les passerelles SMS qui prennent en charge l'envoi en masse de messages contenant des adresses concaténées sous la forme d'une liste complète et séparées par le délimiteur défini. Cette configuration dépend de la façon dont la passerelle traite et interprète le délimiteur. Par exemple, certaines passerelles acceptent le point-virgule comme délimiteur, alors que d'autres acceptent la virgule ou la barre verticale. C'est pourquoi ce caractère n'est pas codé pour les URL.

L'adaptateur HTTP SMS peut être configuré pour fonctionner avec d'autres services de passerelle de télécommunication fournis par des tiers, prenant en charge l'interface HTTP. Un exemple de passerelle fournie par un tiers et prenant en charge une API HTTP est la passerelle Clickatell.

La demande est initialisée à l'aide d'une requête POST HTTP, les valeurs des paramètres respectant l'API HTTP spécifiée individuellement. Voici une exemple de demande faite à la passerelle Clickatell :

http://api.clickatell.com/http/sendmsg?api_id=someAPI&user=someUser&password=somePassword&to=5552221234,5552225678,5552220987&from=someSender&text=This+is+some+message+from+the+SMS+HTTP+adapter&queue=1&concat=2
Les paramètres doivent recevoir les valeurs suivantes pour envoyer la requête POST HTTP à l'aide de la passerelle Clickatell :
Valeurs des paramètres pour l'envoi de la requête POST HTTP à l'aide de la passerelle Clickatell
Paramètre Valeur
APIKey api_id
APIValue someAPI
CharacterLimit 160
CustomParameters &queue=1&concat=2
Noeud final http://api.clickatell.com/http/sendmsg
MaxRecipients 100
MessageKey text
Mot de passe somePassword
PasswordKey password
RecipientDelimiter ,
RecipientKey to
SenderKey from
SenderValue someSender
UserNameKey user
UserNameValue someUser
usePostMethod true