Crear un mensaje XML de entrada

Además de los mensajes de HCL Commerce y XML soportados, puede añadir soporte para nuevos mensajes de entrada.

Hay dos métodos principales para añadir nuevos mensajes de entrada.

El método recomendado es añadir un nuevo mensaje XML de entrada a través del uso del archivo de definición de plantilla de mensaje de entrada user_template.xml. En este archivo, puede indicar el mandato de controlador al que debe invocar el nuevo mensaje de entrada, definir los elementos del mensaje e indicar los parámetros del mandato al que corresponde cada elemento. Cuando se recibe el mensaje, el correlacionador de mensajes XML identifica el mandato que se ha de ejecutar y los parámetros que se han de utilizar. A continuación, se invoca el mandato utilizando la autorización del Administrador de sitio. Por razones de seguridad, deberá asegurarse de que sólo las personas autorizadas puedan acceder y modificar el archivo de definición de plantilla de mensaje user_template.xml, de lo contrario los usuarios no autorizados tendrían la capacidad de grabar un nuevo mensaje de entrada e invocar cualquier mandato de HCL Commerce como administrador de sitio.

Si no desea utilizar los archivos de definición de plantillas de mensajes XML de entrada junto con el correlacionador de mensajes XML, puede implementar el mandato NewInboundMessage para añadir mensajes nuevos. Este mandato se invoca cuando el correlacionador de mensajes no reconoce el mensaje como un mensaje heredado existente, o como un mensaje XML definido en los archivos de definición de plantillas de mensajes XML. Dado que el mandato NewInboundMessage no está programado previamente, posee un control total sobre el proceso que se lleva a cabo cuando se invoca. Sin embargo, este método requiere un trabajo de programación considerable, especialmente cuando hay un gran número de mensajes nuevos.

HCL Commerce le permite modificar o ampliar la funcionalidad de todos los mensajes de entrada modificando el mandato de controlador de HCL Commerce que ejecuta cada mensaje. Puede proporcionar sentencias de preproceso o postproceso adicionales para cualquier mandato de mensaje de entrada utilizado, o puede reemplazar el proceso existente en su totalidad. Para ello, debe tener conocimientos de programación Java.

Cuando se recibe un mensaje de entrada de un sistema de fondo, su información se procesa en parámetros de mandato y se invoca un mandato de controlador de HCL Commerce junto con todos los parámetros proporcionados. Cuando se ejecuta el mandato, se invoca el método performExecute(), el cual a su vez invoca tres métodos en el orden siguiente:
  1. doPreProcess()
  2. doProcess()
  3. doPostProcess()

La primera vez que instala HCL Commerce, solo el método doProcess() contiene sentencias de programación. Puede añadir sentencias de preproceso ampliando el mandato e implementando el método doPreProcess(), o puede añadir sentencias de postproceso implementando el método doPostProcess(). Alternativamente, puede implementar el método doProcess() o performExecute() para sobregrabar todo el proceso.

Complete los pasos siguientes para añadir soporte para un nuevo mensaje de entrada:

  1. Defina un archivo DTD para el nuevo mensaje XML y guárdelo en el directorio siguiente:
    • HCL Commerce Developerworkspace_dir/WC/xml/messaging

    Puede utilizar como referencia los archivos DTD para los mensajes XML existentes. Estos archivos se encuentran en el directorio de configuración XML.

    Por ejemplo,

    <!ELEMENT Update_First_Element (DataArea)>
    <!ATTLIST Update_First_Element
     version CDATA #FIXED "1.0">
    <!ELEMENT DataArea (ABC)>
    <!ELEMENT ABC (#PCDATA)>
  2. Añada un nuevo archivo DTD al sistema, efectuando una de estas acciones:
    1. Coloque el archivo DTD que ha creado para el nuevo mensaje en el mismo directorio en el que están los demás archivos DTD de mensajes. Los archivos se almacenan en el directorio siguiente:
      • HCL Commerce Developer workspace_dir/WC/xml/messaging
    2. HCL Commerce Developer Añada el nombre de archivos DTD de mensaje de entrada bajo la etiqueta Messaging/EcInboundMessageDtdFiles encontrada en el HCL Commercearchivo de configuración.
  3. Cree un nuevo mandato de controlador o personalice un mandato de tarea existente de modo que maneje un mensaje con un Id de mensaje o nombre determinados. Por ejemplo,
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE Update_First_Element SYSTEM 'Update_New_Message.dtd'>
    <Update_First_Element version='1.0'>
    <DataArea>
    <ABC>123456</ABC>
    </DataArea>
    </Update_First_Element>
  4. Actualice el archivo de definición de plantilla de mensajes de entrada user_template.xml para el nuevo mensaje. Por ejemplo,
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE ECTemplate SYSTEM 'ec_template.dtd' >
    <ECTemplate>
    <TemplateDocument>
    <DocumentType version='1.0'>Update_First_Element</DocumentType>
    <StartElement>Update_First_Element</StartElement>
    <TemplateTagName>NewMessageMap</TemplateTagName>
    <CommandMapping>
    <Command CommandName='NewCommand' />
    </CommandMapping>
    </TemplateDocument>
    <TemplateTag name='NewMessageMap'>
    <Tag XPath='DataArea/ABC' Field='ABC_id' />
    </TemplateTag>
    </ECTemplate>