Resumen

Diferentes estrategias para diferentes entornos

  • Las acciones siguientes comparten la misma estrategia en el manejo de repeticiones: Correlacionar desde origen, Crear nueva subcorrelación, Llamar a subcorrelación, Llamar a rutina ESQL.
  • La acción Acumular maneja las repeticiones a su manera.
  • La acción Entrar expresión es independiente de la repetibilidad.

Manejar repetición para correlación de uno a uno en las acciones Correlacionar desde origen, Crear nueva subcorrelación, Llamar a subcorrelación, Llamar a rutina ESQL

  • Al determinar la repetibilidad, un elemento (o atributo), junto con uno o más elementos sequence/choice/all/group xsd que lo contengan (o un contenedor de sequence/choice/all/group), forman un nivel.
  • La creación de una correlación es un proceso de tres pasos: expandir, establecer la expresión MapFrom, añadir ForEach/If/Condition. A continuación se describe el algoritmo detallado para el último paso, insertar ForEach y demás.
  • Empezando desde el origen y destino de correlación seleccionado, desde dentro hacia afuera, empareje un nivel de origen de repetición con un nivel de destino de repetición.
  • Para cada nivel coincidente de repetición en el origen y el destino:
    • Si este nivel de destino no tienen ningún elemento sequence/choice/all/group de repetición, cree una ForEachStatement que contenga el nivel de estructura de destino.
    • La expresión de la sentencia ForEach es la referencia correlacionable para el nivel de origen de repetición.
    • Si este nivel de destino está contenido en un elemento sequence/choice/all/group de repetición, cree una ForEachStatement que contenga todas las estructuras de sequence/choice/all/group.
    • La expresión de la sentencia ForEach es la referencia correlacionable para el nivel de origen de repetición.
    • Si ya hay una ForEach con una expresión esperada que contiene los miembros sequence/choice/all/group esperados, no cree otra.
    • Si ya hay una ForEach con una expresión diferente pero que contiene los miembros sequence/choice/all/group esperados, cree la ForEach necesaria como un hijo de la ForEach existente. La ForEach interna contiene un bloque If-Condition que incluye todo el contenido del elemento sequence/choice/all/group.
    • La expresión para la Condition anterior es que la aparición de la expresión en la ForEach externa sea igual a la aparición de la expresión en la ForEach interna.
  • Ignore los niveles no coincidentes de repetición en el destino.
  • Para cada nivel no coincidente de repetición en el origen:
    • Cree una ForEachStatement que contenga una IfStatement, que contenga una ConditionStatement, que contenga el nivel de estructura de destino.
    • La expresión de la sentencia ForEach es la referencia correlacionable para el nivel de origen de repetición.
    • Si ya hay una ForEach para el nivel de origen de repetición, no cree otra.
    • La expresión para Condition es occurrence(this_level_of_repeating_source)=1.
    • Si ya hay una Condition para la primera aparición del nivel de origen de repetición, no cree otra Condition.
    • Si ya hay una Qualify pero no hay ninguna condición esperada, cree otra Condition en la Qualify.
  • Las sentencias de destino de base de datos relacional deben colocarse dentro de elementos ForEach.
    • Cuando un origen incluye niveles de repetición anidados, el ForEach para cada nivel está anidado.
  • Un conjunto de resultados de selección de origen de base de datos relacional es conceptualmente una repetición. Sin embargo, una correlación desde un origen de base de datos puede requerir la ampliación del ámbito de la sentencia select. Para simplificar las cosas, la herramienta no inserta ningún ForEach como resultado de correlacionar desde un origen de base de datos.
    • Al insertar una SelectStatement en el modelo de sentencia, las herramientas de correlación siempre crean una Select con una ForEach dentro de la misma para realizar un bucle por el conjunto de resultados.

Manejar repetición para correlación de uno a muchos en la acción Correlacionar desde origen

  • Utilice la estrategia "uno a uno" muchas veces, una vez para cada destino.
  • No intente ninguna optimización entre las muchas correlaciones.

Manejar repetición para correlación de muchos a uno en las acciones Correlacionar desde origen, Crear nueva subcorrelación, Llamar a subcorrelación, Llamar a rutina ESQL

  • Utilice la estrategia "uno a uno" entre el origen específico y el destino.
  • Para cada nivel de repetición de origen, anide elementos ForEach invocados por cada origen. Califique por instancia para que los elementos ForEach anidados sólo seleccionen la instancia en el mismo índice.
Tareas relacionadas
Desarrollo de correlaciones de mensajes
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2005 Última actualización: 11/11/2005
ar25235_1_