Configuración de correlacionador de mensajes de componente de miembro

El componente de miembro utiliza la infraestructura de correlacionador de mensajes para determinar a qué mandato de HCL Commerce llamar, según el BOD de petición. La infraestructura de correlacionador de mensajes proporciona una manera de convertir los valores en el nombre SDO en parejas nombre-valor que el mandato de HCL Commerce puede procesar.

La configuración del correlacionador de mensajes está en el directorio siguiente:

Person

  • workspace_dir/WC/xml/messaging/component-services/PersonBODMapping.xml

Organización

  • workspace_dir/WC/xml/messaging/component-services/OrganizationBODMapping.xml

Si tiene que definir su propia información de correlación, utilice el archivo siguiente:

  • workspace_dir/WC/xml/messaging/component-services/component-services-user-template.xml

Conversor de mensajes

A diferencia de las bases de datos, los nombres no utilizan abreviaturas. Por ejemplo, en la base de datos, el género se almacena como un solo carácter: M (Masculino), F (Femenino) o N (No especificado). En el nombre Persona, el género es un tipo de enumeración fijo, con los valores siguientes: Masculino, Femenino, No especificado. Si el objeto de datos de servicio tiene un formato largo y el mandato de HCL Commerce espera un valor corto, se llama a una clase de conversor de mensajes para realizar la conversión entre valores externos e internos. Este conversor también se utiliza para añadir cualquier valor de parámetro que falte, y que el mandato requiera. Por ejemplo, cuando se llama a MemberFacadeClient.updateAddressForOrganization(), el mandato subyacente requiere el parámetro addressId. Si no se proporciona como entrada en el método, la clase de conversor de mensajes, ECSAXOrgAddressComponentMessageFlattener, obtendrá y añadirá el parámetro addressId a requestProperties del mandato, según los parámetros distinguishedName y nickName.

Ejemplo

Se llama a ECSAXUserRegistrationComponentMessageFlattener.java durante la petición de proceso de persona, con acción de registro.


/**
* Processes parameter values that are going to be sent to a command
to ensure that they are in a format
* that the command can handle. 
* 
* 1. Converts parameters like addressType  from long form
(Shipping) to short form (S) 
* 2. Appends userId parameter if logonId is specified. 
* 3. Appends logonPasswordVerify parameter (with same value as
logonPassword) 
* if logonPasswordVerify value does not exist. 
* 4. Extracts custom member attributes and formats as follows:
* attributeName_storeName_action_number=value 
* 5. Converts boolean parameters to 1 or 0. 
*/ 

La correlación entre valores externos e internos (paso 1 en el ejemplo anterior), se define en workspace_dir/WC/xml/config/com.ibm.commerce.member/wc-component.xml como se muestra en el siguiente fragmento de código.


<_wcf:valuemapping externalName="AddressType"
internalName="AddressType">
<!-- Maps to ADDRESS.ADDRESSTYPE in database -->
<_wcf:valuemap externalValue="Shipping" internalValue="S" />
<_wcf:valuemap externalValue="Billing" internalValue="B" />
<_wcf:valuemap externalValue="ShippingAndBilling"
internalValue="SB" />
</_wcf:valuemapping>

Las personalizaciones en la correlación predeterminada deben realizarse en el archivo siguiente:

workspace_dir/WC/xml/config/com.ibm.commerce.member-ext\wc-component.xml