En los trabajos paralelos de DataStage® , algunas etapas pueden enviar un marcador de fin de ciclo (EOW), que indica el final de una unidad de trabajo o transacción. Cuando todos los registros que se extraen del enlace de entrada se incluyen en una unidad de trabajo (llamada una sola ola), la etapa Excel genera hojas de Microsoft Excel que contienen el número máximo de registros hasta que se graban todos los registros.
Por ejemplo, suponga que la etapa Excel tiene dos enlaces de entrada, DSLink1 y DSLink2. DSLink1 está asociado con Sheet1 y DSLink2 está asociado con Sheet2. El número máximo de registros en una hoja es de 65.536 y DSLink1 tiene 100.000 registros; DSLink2 tiene 150.000 registros. Cada hoja no tiene nombres de columna en la primera fila. En este caso, se incluye el siguiente número de registros en cada hoja de cada archivo.
Nombre de archivo |
Sheet1 |
Sheet2 |
Workbook001.xlsx |
65.536 |
65.536 |
Workbook002.xlsx |
34.464 |
65.536 |
Workbook003.xlsx |
0 |
18.928 |
Cuando los registros que se extraen del enlace de entrada se dividen en dos o más unidades de trabajo (denominadas varias olas), la etapa Excel detiene la grabación de registros en la hoja de Microsoft Excel y crea un nuevo archivo de Microsoft Excel si el número de registros de una ola supera el número máximo en al menos una hoja. La etapa Excel no graba ningún registro en la siguiente ola en el archivo anterior, incluso si una hoja puede contener más registros. Por ejemplo, suponga que cada enlace contiene el siguiente número de registros en cada ola.
Nº de ola |
DSLink1 |
DSLink2 |
1 |
90.000 |
50.000 |
2 |
5.000 |
90.000 |
3 |
5.000 |
10.000 |
En la primera ola, la etapa Excel crea un archivo de Microsoft Excel llamado Workbook001.xlsx que tiene dos hojas, Sheet1 y Sheet2. La etapa Excel graba registros que se extraen de DSLink1 a Sheet1 hasta que lee el número máximo de registros (65.536) y graba todos los registros (50.000) de DSLink2 a Sheet2. A continuación, la etapa Excel crea un archivo de Microsoft Excel llamado Workbook002.xlsx y escribe el resto de los registros (24.464) en la primera ola y todos los registros (5.000) en la segunda ola de DSLink1 a Sheet1. Aunque Sheet2 de Workbook001.xlsx no supera el número máximo de registros, la etapa Excel graba registros (65.536) en la segunda ola extraídos de DSLink2 a Sheet2 de Workbook002.xlsx, no Workbook001.xlsx. Cuando el número de registros de la segunda ola de DSLink2 supera el número máximo, la etapa Excel crea un archivo de Microsoft Excel denominado Workbook003.xlsx y graba el resto de los registros (24.464) en la segunda ola de DSLink2 a Sheet2 de Workbook003.xlsx. Para la tercera ola, debido a que las dos hojas tienen suficiente espacio, la etapa Excel graba todos los registros extraídos de DSLink1 (5.000) y DSLink2 (10.000) a Sheet1 y Sheet2 de Workbook003.xlsx.
Como resultado, se graba el siguiente número de registros en cada hoja de cada archivo:
Nombre de archivo |
Sheet1 |
Sheet2 |
Workbook001.xlsx |
65.536 de la primera ola |
50.000 procedentes de la primera ola |
Workbook002.xlsx |
29.464 (= 24.464 de la primera ola + 5.000 de la segunda ola) |
65.536 procedentes de la segunda ola |
Workbook003.xlsx |
5.000 de la tercera ola |
34.464 (= 24.464 de la segunda ola + 10.000 de la tercera ola) |