Configurar los servicios de transporte utilizados para un mensaje

Utilice los siguientes métodos genéricos del mandato SendMsgCmd para configurar los servicios de transporte utilizados para el mensaje:

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

Estos métodos genéricos del mandato SendMsgCmd permite al usuario configurar los servicios de transporte utilizados para el mensaje. El parámetro key hace referencia al nombre de administración que se utiliza para identificar el atributo que se ha de cambiar. El parámetro value es el valor que se ha de asignar. La invocación de estos métodos hace que los valores especificados aquí alteren los valores asignados en la consola de administración. El último método permite establecer datos de configuración sensibles al idioma nativo. Consulte la tabla siguiente que contiene los transportes predeterminados disponibles para el sistema de mensajería y los atributos aplicables a cada uno.

Nota: El parámetro language representa el LANGUAGE_ID que se encuentra en la tabla LANGUAGE. Por ejemplo, el campo subject de la tabla siguiente. Consulte el método addMember para conocer una manera alternativa de establecer destinatarios de correo electrónico. Consulte la API para obtener información sobre la clase Messaging.

Atributos de configuración

La tabla siguiente muestra cómo se puede utilizar el parámetro key para configurar el mensaje. Los transportes por omisión disponibles en el sistema de mensajería utilizan los atributos listados en la tabla.

Notes:
  • Si el transporte que desea utilizar no está en la lista, puede desarrollar el suyo propio, siguiendo los ejemplos del tema Adaptador de ejemplo.
  • Las claves de atributo son sensibles a las mayúsculas y minúsculas
  • Para direcciones de correo electrónico:
    • Varias direcciones se deben separar mediante una coma.
    • Las direcciones de correo electrónico de internet RFC 822 que contienen espacios se deben escribir entre comillas dobles. Por ejemplo, "My company<myco@mycompany.com>".
  • Todos los nombres de colas JMS y el nombre de fábrica de conexión de cola deben corresponderse con los nombres de cola y los nombres de fábrica de conexión de cola definidos en la Consola de administración de WebSphere Application Server.

Ver las propiedades sustituidas

El valor alterado por el mandato que llama al método no se puede ver desde la consola de administración. No obstante, una vez que se ha creado el mensaje, y antes de que se envíe al trabajo del planificador SendTransactedMsg, se puede ver:
  1. Abra la Consola de administración y seleccione Sitio en la página Selección de sitio/tienda desde la Consola de administración.
  2. Vaya a Supervisión > Ver mensajes no enviados.
  3. Seleccione el transporte deseado con el estado Entrega como Pending.
  4. Pulse Buscar.
  5. Pulse el ID de mensaje del último mensaje en la última página.
  6. Las propiedades sustituidas, junto con otras propiedades, se muestran en la parte superior de la página.
Transporte Clave de atributo Descripción:
Adaptador de correo electrónico username Nombre de usuario utilizado para iniciar la sesión en el servidor SMTP.
Nota: Una vez que se ha especificado el nombre de usuario, se necesita una conexión SSL al servidor SMTP.
Contraseña Contraseña asignada para autenticar el uso de servidor SMTP.
subject Asunto del correo electrónico. Puede especificar un asunto para cada entorno local.
Nota: Nota: Si el sistema no utiliza un asunto personalizado, puede haber un valor predeterminado configurado para el mandato de envío de correo electrónico.
Utilice la sentencia siguiente para buscar la entrada y eliminarla:
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 Dirección de correo electrónico de los destinatarios.
remitente Dirección de correo electrónico del remitente.
host Especifique el nombre de host completo o la dirección IP del servidor SMTP que se utiliza para enviar el mensaje.
protocol Protocolo utilizado para conectar con el host de correo.
port Puerto SMTP utilizado para enviar el mensaje. (En la mayoría de los sistemas es el puerto 25)
retryDuration Especifique el periodo en horas durante el cual desea reintentar la conexión al servidor sin reducir el número de reintentos.
sendPartial Comportamiento si hay direcciones de correo electrónicas no válidas para varios destinatarios. Este valor será true (verdadero) si el correo electrónico se envía de todos modos aunque algunas direcciones de correo electrónico no sean válidas. El valor será false (falso) si el correo electrónico no se envía si hay direcciones no válidas.
Nota: Esta propiedad depende del servidor SMTP. Es responsabilidad exclusiva del servidor SMTP observar este distintivo.
contentType El tipo de contenido, por ejemplo text/plain o text/html. El valor predeterminado es text/plain.
BCC Dirección o direcciones de correo electrónico a las que desea enviar una copia oculta.
CC Dirección o direcciones de correo electrónico a las que desea enviar una copia carbón.
replyTo Dirección de respuesta para el correo electrónico.
Adaptador de archivo location La ubicación del archivo que se ha de grabar.
FileName El nombre del archivo que se ha de grabar.
mode El tipo de operación de grabación que se ha de realizar.
  • 0 - añadir, o crear si el archivo no existe
  • 1 - sobrescribir
Adaptador para IBM MQ factory Especifique el nombre JMS de la fábrica de conexiones de cola.
inQueue Cola de entrada que se utiliza para recibir mensajes de respuesta cuando se utiliza el servicio de envío sendReceiveImmediate (mediante algunos mandatos).
errorQueue Especifique el nombre JMS de la cola de errores en la que se ponen los mensajes que no se han podido procesar.
outQueue Especifique el nombre JMS de la cola de salida, donde se colocan los mensajes de salida.
timeOut Especifique el periodo de tiempo, en segundos, durante el cual desea que el sistema de mensajería espere una respuesta si se especifica la modalidad de envío/recepción (modalidad = 1). Si no se recibe ninguna respuesta en el periodo de tiempo especificado, el sistema devuelve un mensaje nulo. El valor predeterminado es 60 segundos.
mode Modalidad del mensaje de salida que se maneja. El valor predeterminado es 0, que es sólo salida. Este valor debe utilizarse con el servicio de envío sendImmediate. Si se utiliza 1, el mandato invocador utiliza el servicio de envío sendReceiveImmediate y el mandato espera un mensaje de respuesta hasta que se alcanza "timeOut". De lo contrario, el valor timeOut no se utilizará.
JMSExpiration Tiempo, en segundos, a partir de la hora de envío de un mensaje, que el proveedor de servicio JMS de destino debe mantener dicho mensaje antes de eliminarlo de la cola. El valor predeterminado de 0 implica que el mensaje no caduca y se conservará hasta que lo elimine una aplicación JMS.
JMSPriority La prioridad del mensaje. Los rangos de valor 0 a 9, donde 9 es el más urgente. El valor predeterminado es 4.
JMSDeliveryMode Especifica la modalidad de entrega del mensaje. El mensaje se entrega en modalidad persistente cuando el valor se ha establecido en 2 y se entrega en modalidad no persistente cuando el valor se ha establecido en 1. el valor predeterminado depende de la cola. Cuando el mensaje se envía en modalidad persistente, el mensaje continuará en el servidor MQ y estará disponible al reiniciar. Para obtener más información, consulte la documentación del proveedor de JMS.
JMSHeaderPropertyN (donde N es un identificador exclusivo arbitrario, por ejemplo, 1, 2, 3) Campos especiales utilizados para almacenar información de cabecera específicos del proveedor. Si es necesario más de una JMSHeaderProperty, debe añadirse un dígito exclusivo u otro identificador al final del atributo "Admin" del nodo EditableProperty (por ejemplo, de JMSHeaderProperty1 a JMSHeaderPropertyN).
Conector HTTP y Servicio Web sobre Conectores HTTP URL El URL al que debe transportarse el mensaje
contentType El tipo de contenido del mensaje
userName El nombre de usuario que se debe utilizar para la autenticación. Para los servicios web sobre HTTP, es el nombre de usuario para el servicio web.
Contraseña La contraseña que se debe utilizar para la autenticación. Para los servicios web sobre HTTP, es la contraseña para el servicio web.
errorLifeExpectancy Como característica de este conector específico, si se produce una excepción cuando ejecuta la solicitud basada en las propiedades de conexión, este conector espera este tiempo especificado (en segundos) antes de permitir que se ejecute de nuevo la misma solicitud. Esto impide que el sistema de fondo quede desbordado con una serie de peticiones cuando no está disponible o no responde. Se capturan determinadas excepciones de comunicación y se les asigna este valor de tiempo de espera. Cuando se realizan solicitudes basadas en la misma información de conexión, se genera la excepción almacenada en memoria caché en lugar de ejecutar la solicitud. Una vez transcurrido el tiempo de espera, la solicitud se ejecutará de la forma usual. El propósito de ello es proporcionar al llamante una excepción y, al mismo tiempo, evitar realizar peticiones repetidas a un sistema de fondo que no responde en ese momento.
connectTimeout El tiempo de espera, en segundos, para configurar una conexión con el URL. No especifique un valor o especifique 0 si desea un período de tiempo de espera infinito.
readTimeout El tiempo de espera, en segundos, al leer corrientes de entrada cuando se establece una conexión a un URL. No especifique un valor o especifique 0 si desea un período de tiempo de espera infinito.
Servicio web sobre conector JMS factory El nombre de la fábrica de conexiones de cola JMS.
inQueue Cola de entrada que se utiliza para recibir mensajes de respuesta cuando se utiliza el servicio de envío sendReceiveImmediate (mediante algunos mandatos).
errorQueue Especifique el nombre JMS de la cola de errores en la que se ponen los mensajes que no se han podido procesar.
outQueue La cola de salida donde se colocan los mensajes de salida.
userName El nombre de usuario que se debe utilizar para la autenticación básica.
Contraseña La contraseña que se debe utilizar para la autenticación básica.
timeOut El valor de tiempo de espera (en segundos) utilizado para esperar un mensaje de respuesta opcional de un sistema externo. El valor predeterminado es 60.
mode La modalidad del mensaje de salida que se maneja. El valor predeterminado es 0, que es sólo salida. Este valor debe utilizarse con el servicio de envío sendImmediate. Si se utiliza 1, el mandato invocador utiliza el servicio de envío sendReceiveImmediate y el mandato espera un mensaje de respuesta hasta que se alcanza "timeOut". De lo contrario, el valor timeOut no se utilizará.
JMSExpiration Tiempo, en segundos, a partir de la hora de envío de un mensaje, que el proveedor de servicio JMS de destino debe mantener dicho mensaje antes de eliminarlo de la cola. El valor predeterminado de 0 implica que el mensaje no caduca y se conservará hasta que lo elimine una aplicación JMS.
JMSPriority La prioridad del mensaje. Los rangos de valor 0 a 9, donde 9 es el más urgente. El valor predeterminado es 4.
JMSDeliveryMode Especifica la modalidad de entrega del mensaje. El mensaje se entrega en modalidad persistente cuando el valor se ha establecido en 2 y se entrega en modalidad no persistente cuando el valor se ha establecido en 1. el valor predeterminado depende de la cola. Cuando el mensaje se envía en modalidad persistente, el mensaje continuará en el servidor MQ y estará disponible al reiniciar. Para obtener más información, consulte la documentación del proveedor de JMS.
JMSHeaderPropertyN (donde N es un identificador exclusivo arbitrario, por ejemplo, 1, 2, 3) Campos especiales que se utilizan para almacenar información de cabecera específica de proveedor. Si es necesario más de una JMSHeaderProperty, debe añadirse un dígito exclusivo u otro identificador al final del atributo "Admin" del nodo EditableProperty (por ejemplo, de JMSHeaderProperty1 a JMSHeaderPropertyN).
targetService La operación de puerto que se debe llamar. Por ejemplo, "InventoryServices". Los servicios de destino pueden encontrarse en WSDL para el proveedor de servicios.
Notes:

Para establecer JMSExpiration, JMSPriority y otros campos de cabecera específicos de proveedor JMS de un mensaje JMS de salida, se deben añadir nuevos nodos EditableProperty a la definición InteractionSpec de JCAJMSInteractionSpec:

  • setJMSExpiration
  • setJMSPriority
  • setJMSDeliveryMode
  • setJMSHeaderProperty

Esta definición se encuentra debajo del OutboundConnector denominado JMS.

  1. Haga una copia de seguridad del HCL Commercearchivo de configuración. Si desea reservar este arreglo, tendrá que restaurar el archivo de configuración XML original.
  2. Añada la siguiente sección al mismo:
    
    <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 -->
    

    Los mensajes de salida que se envían a través de este conector tienen, de forma predeterminada, un valor de JMSExpiration de 60 segundos. Este valor puede personalizarse en la Consola de administración de cuando se asigna un tipo de mensaje al transporte MQ.

    Nota: El valor especificado en el atributo Admin debe ser exclusivo en el nodo InteractionSpec. Se permiten varios elementos EditableProperty y son opcionales. Si es necesario más de una JMSHeaderProperty, debe añadirse un dígito exclusivo u otro identificador al final del atributo "Admin" del nodo EditableProperty (por ejemplo, de JMSHeaderProperty1 a JMSHeaderPropertyN). Es necesario modificar el atributo de valor con el par nombre-valor necesario. El valor en el par nombre-valor debe escribirse entre comillas simples (').
  3. Vuelva a asignar el tipo de mensaje al método de transporte MQ. De este modo se asegura de que los mensajes de salida que se envían bajo este tipo de mensaje tengan establecidas las correspondientes propiedades de cabecera.
Los siguientes transportes adicionales están disponibles como parte de HCL Commerce versión 7:
Transporte Clave de atributo Descripción:
SMS-HTTP APIKey El nombre de parámetro del identificador de API.
APIValue El identificador de la API de servicio exclusivo asociado a la cuenta.
CharacterLimit El número máximo de caracteres de un mensaje. El valor predeterminado es 160.
CustomParameters Parámetros adicionales a pasar a la API HTTP.
Nota: Estos parámetros de URL deben codificarse manualmente.
Endpoint La ubicación de URL de la API HTTP del servicio de telecomunicaciones.
MaxRecipients El número máximo de destinatarios enviados a la pasarela en una sola solicitud. Para las pasarelas que no dan soporte al sistema de mensajería masivo, el valor debe establecerse en 1.
MessageKey El nombre de parámetro del identificador de Message.
MessageValue El mensaje predeterminado si no se sustituye por un archivo JSP personalizado.
Contraseña La contraseña utilizada para la autenticación con el servicio. Las contraseñas se almacenan como valores cifrados utilizando la clave del comerciante.
PasswordKey El nombre de parámetro del identificador de Password.
RecipientDelimiter El carácter delimitador para varios destinatarios en el parámetro recipient.
RecipientKey El nombre de parámetro del identificador de Recipient.
RecipientValue El número de destino de los destinatarios.
SenderKey El nombre de parámetro del identificador de Sender.
SenderValue El nombre o número del remitente.
usePostMethod Indica si se utiliza el método HTTP-POST. Si el valor es false, se utiliza el método HTTP-GET.
UserNameKey El nombre de parámetro del identificador de UserName.
UserNameValue La identificación de UserName para el servicio.
SMS-WS CharacterLimit El número máximo de caracteres de un mensaje. El valor predeterminado es 160.
Endpoint El URI del servicio de pasarela de Parlay X 3.0.
Mensaje El mensaje predeterminado si no se sustituye por un archivo JSP personalizado.
Contraseña La contraseña utilizada para la autenticación con el servicio. Las contraseñas se almacenan como valores cifrados utilizando la clave del comerciante.
Destinatario El número de destino de los destinatarios.
SenderValue El nombre o número del remitente.
UserNameValue El nombre de usuario registrado de este servicio web.
Notes:

Al integrar transportes SMS en HCL Commerce:

  • Las claves de atributo proporcionadas son pares nombre-valor genéricos comunes a la mayoría de servicios de pasarela que soportan la interfaz de API HTTP. Algunos de los campos proporcionados pueden ser óptimos en función de las configuraciones de servicio disponibles. El campo customParameters proporciona más opciones de personalización, aumentando la compatibilidad con varios servicios de pasarela.
  • Las claves de atributo proporcionadas están codificadas por URL y son válidas su transmisión a través de una serie de URL salvo que se especifique otra cosa. De forma alternativa, el valor CustomParameters no está codificado por URL, lo que permite una mayor flexibilidad al gestionar valores personalizados. Por lo tanto, los parámetros de URL customParameters deben codificarse manualmente.
  • El adaptador SMS HTTP se puede configurar para que funcione con varios servicios de pasarela de telecomunicaciones de terceros que soporten la interfaz HTTP. Las solicitudes se inician utilizando una solicitud HTTP POST, con los valores de parámetros que cumplen con la API HTTP especificada de forma individual.
  • El contenido del mensaje correspondiente al parámetro MessageKey, y la dirección del destinatario correspondiente al parámetro RecipientKey se generan dinámicamente, en función del tipo de mensaje y de la identidad del cliente. Una vez que se han generado, estos campos se pasan al adaptador para la entrega del mensaje.
  • RecipientDelimiter se utiliza para las pasarelas SMS que soportan mensajes masivos con las direcciones concatenadas en una lista de direcciones completa, separadas por el delimitador especificado. Esta configuración depende del manejo de la pasarela y la interpretación del delimitador. Por ejemplo, algunas pasarelas dan soporte a un punto y coma como delimitador, mientras que otras dan soporte a una coma o al carácter de barra vertical como delimitadores. Por lo tanto, este carácter no está codificado por URL.

El adaptador SMS HTTP se puede configurar para que funcione con otros servicios de pasarela de telecomunicaciones de terceros que soporten la interfaz HTTP. Un ejemplo de una pasarela de terceros que da soporte a una HTTP API es la pasarela Clickatell.

Una solicitud se inicia utilizando una solicitud HTTP POST, con los valores de parámetros correctos conforme a su HTTP API especificada de forma individual. A continuación se muestra un ejemplo de una petición realizada a la pasarela 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
Se deben asignar los valores siguientes a los parámetros para enviar la solicitud HTTP POST utilizando la pasarela Clickatell:
Valores de parámetros utilizados para enviar la solicitud HTTP POST utilizando la pasarela Clickatell
Parámetro Valor
APIKey api_id
APIValue someAPI
CharacterLimit 160
CustomParameters &queue=1&concat=2
Endpoint http://api.clickatell.com/http/sendmsg
MaxRecipients 100
MessageKey text
Contraseña somePassword
PasswordKey password
RecipientDelimiter ,
RecipientKey to
SenderKey from
SenderValue someSender
UserNameKey user
UserNameValue someUser
usePostMethod true