Deprecated feature

Nombres

Se necesita una definición de modelo lógico para los servicios que tienen un esquema XML como base. En HCL Commerce, la definición de modelo lógico se representa como un nombre. HCL Commerce utiliza sus propios nombres simplificados, tipos definidos y tipos de esquema XML primitivos. HCL Commerce no utiliza nombres y tipos base proporcionados por OAGIS.

Los nombres definen el nombre de cada elemento de datos en el modelo lógico, y asignan ese nombre a un tipo de datos. El tipo de datos puede ser un tipo de esquema XML primitivo como, por ejemplo, booleano, o un tipo complejo. Un tipo complejo es una construcción de elementos de datos como, por ejemplo, CurrencyType que contiene el precio (representado por un tipo doble) y la moneda (representada como una serie). Un nombre puede contener una o más partes de nombre (denominadas, a veces, elementos de nombre). Una parte de nombre es un tipo XML complejo de un nombre que puede actuar de forma independiente. Las partes de nombre representan partes de un nombre lógico. Separar un nombre en partes simplifica la codificación ya que reduce el ámbito de los mandatos y los mediadores. En lugar de manejar el nombre entero, el código se limita solo a procesar una parte del mismo. Cuando llega una solicitud, se divide en diferentes partes y se ejecuta el mandato apropiado para cada una de ellas. Por ejemplo, el nombre CatalogEntry contiene una lista de descripciones. Una descripción catalogEntry se considera como una parte de nombre y se procesa mediante ChangeCatalogEntryDescriptionCmdImpl y ChangeCatalogEntryDescriptionMediator.

La correlación entre un nombre, una parte de nombre y el mandato se realiza en la tabla CMDREG, y la correlación entre un nombre, una parte de nombre y un mediador se realiza en el archivo wc-business-object-mediator.xml.

No es necesario dividir los nombres en distintas partes. Es decir, si un nombre es relativamente simple, todo su contenido, incluidos los tipos XML complejos, pueden procesarse mediante el mismo mandato y mediador.

HCL Commerce proporciona algunas construcciones de tipo complejo predefinidas que se comparten entre todos los nombres. Puede utilizar estos tipos en sus nombres personalizados.

Tipos de identificador

Identifican y distinguen, de forma exclusiva, una instancia de un objeto en un esquema de identificación de los demás objetos en el mismo esquema. Por ejemplo, PersonIdentifierType, OrganizationIdentifierType, CatalogExternalIdentifierType

IBM/Commerce/Resources/ComponentsIdentifierTypes.xsd
Tipos de base

Tipos que no son específicos de dominio. Por ejemplo, DescriptionType, LanguageType, CurrencyType, CharType y UserDataType.

IBM/Commerce/Resources/ComponentsBaseTypes.xsd
Tipos comunes de componentes

Tipos específicos de dominio que los componentes comparten. Incluya CommonTypes.xsd si desea utilizar los tipos definidos en IdentifierTypes.xsd y BaseTypes.xsd.

IBM/Commerce/Resources/ComponentsCommonTypes.xsd

Incluye IdentifierTypes.xsd y BaseTypes.xsd

Los tipos que se utilizan solo dentro de un módulo de servicio, pero que se comparten entre nombres se definen en un archivo XSD común, como CatalogCommon.xsd

La tabla siguiente proporciona las directrices generales que se han de seguir al crear nombres.

Convenios
General
  • Modele nombres de forma que muchos servicios puedan interactuar con un solo nombre. Un objeto de negocio que parece una lista de parámetros de mandato de controlador de HCL Commerce no está bien definido.
  • Mejore la eficacia de los objetos de negocio como una vista lógica de su negocio. Un modelo lógico bien diseñado debe ser comprensible para los usuarios de empresa, mientras que un esquema de base de datos debe estar optimizado para el almacenamiento y la recuperación de datos.
  • No utilice abreviaturas, excepto para formas cortas bien conocidas y acrónimos estándar de la industria. Por ejemplo, ID y SKU son acrónimos aceptable, pero Grp no.
  • Utilice nombres explícitos. No utilice símbolos ni nombres.
  • Añada anotaciones al esquema para describir elementos. En particular, añádalas a elementos en los que los valores tienen un significado específico. Por ejemplo, añada anotaciones al esquema ProcessNoun para describir las acciones posibles del verbo del proceso.
  • Incluya información específica de la tienda en el nombre, o parte del nombre, cuando el objeto de negocio tenga un contexto específico de la tienda. Considere el ejemplo siguiente, un sitio contiene varias tiendas que venden la misma mercancía. En este caso, una entrada de catálogo no es específica de la tienda. Cada tienda tiene su propio catálogo; por tanto, el catálogo es específico de la tienda.
  • Modele el objeto de negocio de forma que éste incluya datos de otros nombres, cuando sea apropiado. Por ejemplo, el precio de una entrada de catálogo varía en función del cliente, los descuentos, el segmento de clientes, etc., y para mayor simplicidad, el nombre CatalogEntry no incluye información sobre el precio. La información sobre el precio está en un nombre PriceList.
  • Cree nombres personalizados que hagan referencia a nombres de HCL Commerce. Por ejemplo, para crear un nombre que haga referencia a una entrada de catálogo, incluya CatalogEntryIdentifierType, el tipo de identificador de entrada de catálogo, en su nombre. Esta asociación permite al servicio solicitar más información. El nombre Order hace referencia al tipo StoreIdentifier utilizando este método.
Tipos
  • Empiece con una mayúscula; a continuación, utilice la bicapitalización.
  • Finalice el nombre con Type. Esto distingue los objetos de tipo definidos y los elementos que son de ese tipo.
  • Incluya un elemento UserData en todos los tipos complejos. El elemento UserData permite la personalización.
  • Defina tipos enumerados en el esquema. Empiece con una mayúscula; a continuación, utilice la bicapitalización. Por ejemplo, defina un tipo enumerado para valores de dirección como Home, Office y Cottage. No utilice los valores de bit internos para definir tipos enumerados; asegúrese de que los valores tienen sentido para el usuario.
  • Utilice normalizedString para la enumeración. Los valores de enumeración empiezan con una mayúscula; a continuación, utilice la bicapitalización.
  • Utilice la unión con EnumerationExtensionType (definido en IdentifierTypes.xsd) para dar soporte a la extensión. EnumerationExtensionType tiene un valor de patrón de x[0-9A-Za-z][0-9A-Za-z_.]*.
    
     <simpleType name="AddressUsageEnumerationType">
          <annotation>
              <documentation>Indicates how usage of the address:
         Shipping:  Shipping address
         Billing:  Billing address
         ShippingAndBilling: Shipping and Billing address
       </documentation>
      </annotation>
      <restriction base="normalizedString">
                 <enumeration value="Shipping"/>
                 <enumeration value="Billing"/>
                 <enumeration value="ShippingAndBilling"/>
      </restriction>
     </simpleType>
     
     <simpleType name="AddressUsageType">
          <annotation>
              <documentation>Allows extension to the default address usage types.
       </documentation>
      </annotation>
      <union memberTypes="wcf:AddressUsageEnumerationType
                          wcf:EnumerationExtensionType"/>
     </simpleType>
    
  • Incluya un tipo complejo de identificador, éste consta de clave interna (clave primaria) e identificador externo. Este tipo de identificador lo utilizan los otros tipos para hacer referencia a este objeto. IdentifierType contiene:
    UniqueID
    Serie necesaria, UniqueID, que normalmente se correlaciona con la clave primaria. Para identificar un objeto se puede utilizar una clave interna o un identificador externo, sin embargo, en la respuesta siempre se devuelve la clave interna.
    Identificadores externos
    Los identificadores externos son opcionales. Para hacer referencia a otro objeto (clave foránea), utilice una clave interna o un identificador externo. Si se utiliza el identificador externo, el identificador no se puede cambiar una vez que el objeto se ha guardado.
    <complexType name="PersonIdentifierType">
         <sequence>
             <element maxOccurs="1" minOccurs="0" name="UniqueID" type="string"></element>
             <element maxOccurs="1" minOccurs="0" name="DistinguishedName" type="string"></element>
        </sequence>
    </complexType>
    
Elementos
  • Empiece con una mayúscula; a continuación, utilice la bicapitalización.
  • No utilice caracteres de subrayado en nombres de elementos.
  • Utilice un nombre coherente con el tipo correspondiente, pero no añada Type.
  • Si el elemento es un identificador de tipo simple, añada ID al final. Por ejemplo, SomeObjectNameID.
Atributos
  • Empiece con una minúscula; a continuación, utilice la bicapitalización.
  • No utilice caracteres de subrayado en nombres de atributos.
  • Se deben utilizar atributos para delimitar valores de elementos, elementos para el contenido principal. Los tipos complejos deben tener como mínimo un elemento.
Espacio de nombres Hay una correlación uno a uno entre los módulos de espacio de nombres y de servicio. Muchos objetos de negocio pueden compartir el mismo espacio de nombres.

Un espacio de nombres consta de tres partes:

domain name
El nombre de dominio de la empresa.
/xmlns/prod/commerce/9
Indica un objeto relacionado con HCL Commerce basado en el sobre de proceso OAGIS 9.
business-service identifier
Clasifica un grupo de nombres.
Por ejemplo: http://www.mycompany.com/xmlns/prod/commerce/9/order

Los valores predeterminados para los atributos de espacio de nombres son elementFormDefault="qualified" y attributeFormDefault="unqualified" .