HCL Commerce información de error de los servicios

Cuando se produce una excepción durante el proceso de un mensaje, el convenio de OAGIS es devolver un mensaje de respuesta con formato correcto con los datos de error incluidos. El elemento ChangeStatus se utiliza para almacenar datos de excepción; si la petición se ha completado satisfactoriamente, está área no se llena. Puesto que sólo se da soporte a una acción por mensaje, sólo puede haber un error por mensaje. Por esta razón, el límite de un área ChangeStatus por mensaje es razonable.

Dentro de los criterios de respuesta, ResponseExpression indica el actionCode de la petición y el elemento ChangeStatus contiene información de excepción si la petición falla. A continuación se muestra una correlación de excepción y el ChangeStatus.

Code
Siempre ERROR para indicar que se trata de una respuesta de error a la expresión de acción
Descripción:
Texto de detalle de excepción específica del entorno nacional
EffectiveDateTime
La hora en que el proceso ha fallado
ReasonCode
Una clave exclusiva que representa el error. Normalmente corresponde a la clave de mensaje de una excepción de HCL Commerce que identifica de forma exclusiva el problema. Sin embargo, hay casos en los que la clave de mensaje no es suficiente para identificar el error de forma exclusiva, además hay un código de error que clasifica el error. En estos casos, el código de razón es la clave de mensaje + código de error para identificar de forma exclusiva el error.
Razón
Información adicional que se puede utilizar para comprender las condiciones que han provocado el error. Puede haber varias razones y normalmente corresponde a los parámetros de mensaje utilizados para rellenar el texto de detalles del mensaje, donde el orden de la razón se corresponde con el orden de los parámetros de mensaje.

El siguiente ejemplo muestra un mensaje de error de respuesta:


<?xml version="1.0" encoding="UTF-8"?>
<_mbr:AcknowledgePerson releaseID="9.0"
	xmlns:_mbr="http://www.ibm.com/xmlns/prod/commerce/9/member"
	xmlns:_wcf="http://www.ibm.com/xmlns/prod/commerce/9/foundation"
	xmlns:oa="http://www.openapplications.org/oagis/9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<oa:ApplicationArea xsi:type="_wcf:ApplicationAreaType">
		<oa:CreationDateTime>2009-07-20T15:28:12.968Z
		</oa:CreationDateTime>
		<oa:BODID>efcd3260-7541-11de-a99e-83c74a648a93
		</oa:BODID>
	</oa:ApplicationArea>
	<_mbr:DataArea>
		<oa:Acknowledge>
			<oa:OriginalApplicationArea>
				<oa:CreationDateTime>2009-07-20Z</oa:CreationDateTime>
				<oa:BODID>ef9188f0-7541-11de-a590-83c74a648cf4
				</oa:BODID>
			</oa:OriginalApplicationArea>
			<oa:ResponseCriteria>
				<oa:ChangeStatus>
					<oa:Code>ERROR</oa:Code>
					<oa:Description>The Logon ID user123 already exists. Specify a
						different Logon ID and try again.</oa:Description>
					<oa:ReasonCode>_ERR_LOGONID_ALREDY_EXIST+2030
					</oa:ReasonCode>
					<oa:Reason>user123</oa:Reason>
				</oa:ChangeStatus>
			</oa:ResponseCriteria>
		</oa:Acknowledge>
	</_mbr:DataArea>
</_mbr:AcknowledgePerson>

El área de ChangeStatus sólo se utiliza para la notificación de errores. Si esta área no existe en el BOD, indica que ese proceso se ha se ha completado satisfactoriamente.

Si la petición falla con un error, el nombre en la DataArea no debe existir (null). Las razones es que un nombre definido puede tener campos necesarios, y el código que maneja excepciones puede no tener suficiente información para llenar estos campos correctamente. Por lo tanto, tiene más sentido pasar la respuesta con un nombre vacío.

El manejo de errores que forma parte de la base del proceso de los documentos de objeto de negocio se encargará de llenar el estado de cambio de la respuesta.