Explicación: Cuando se comparan dos campos de árbol de
mensaje, normalmente esta acción compara el campo y todo su subárbol. Bajo ciertas condiciones en la
Versión 2.1, MRM no comparaba el subárbol,
sino solamente el valor del campo.
Por tanto, cuando se realiza la
misma comparación en la Versión 6.0, la
comparación falla. Examine un mensaje de ejemplo:
<TestCase>
<Folder1>Value1
<Field1>Value2
</Folder1>
<Folder2>Value1
<Field1>Value3
</Folder2>
</TestCase>
Ahora, observe el ESQL siguiente:
IF InputRoot.XML.TestCase.Folder1 = InputRoot.XML.TestCase.Folder2 THEN
SET OutputRoot.XML.Result = 'Igual';
ELSE
SET OutputRoot.XML.Result = 'Diferente';
END IF;
Cuando se compara Folder1 y Folder2, primero se compara el valor de los
campos. En este ejemplo, ambos campos tienen el valor
'Value1'; por tanto, la comparación es satisfactoria y el proceso continúa. El código va al primer hijo, tanto de Folder1 como Folder2. Ahora se
comparan estos campos, en cuanto a nombre, tipo y valor.
En ambas carpetas, el nombre 'Field1' es el mismo, pero el hijo de
Folder1 tiene el valor 'Value2' y el hijo de Folder2 tiene el valor 'Value3'.
Por
consiguiente, el resultado de la comparación es FALSE.
Si la comparación de estos campos hubiera sido satisfactoria, el
proceso de comparación seguiría comparando los hijos de este
campo y luego los hermanos. Por tanto, cuando los campos de árbol de
mensaje se comparan con este código ESQL, todo el subárbol debe
coincidir en cuanto a nombre, tipo y valor de los campos, y la jerarquía
debe ser idéntica. Si se encuentra alguna discrepancia, la comparación
devuelve el valor FALSE.