Vous êtes sur la page 1sur 387

IBM InfoSphere DataStage

Versin 8 Release 7

Gua del desarrollador de Server Job

SC11-7972-00

IBM InfoSphere DataStage


Versin 8 Release 7

Gua del desarrollador de Server Job

SC11-7972-00

Nota Antes de utilizar esta informacin y el producto al que da soporte, lea la informacin de la seccin Avisos y marcas registradas en la pgina 363.

Copyright IBM Corporation 1997, 2011.

Contenido
Captulo 1. Trabajos de servidor . . . . 1
Etapas suplementarias . . Paquetes de IBM InfoSphere Recursos personalizados . Despus del desarrollo . . . . . . DataStage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 3 Terminologa . . . . . . . . . . . . . Utilizacin de la etapa Complex Flat File . . . Definicin de un enlace de salida . . . . . . Acerca de la pgina Salida . . . . . . . . Consideraciones sobre la fecha . . . . . . . Etapas Folder. . . . . . . . . . . . . . Utilizacin de etapas Folder . . . . . . . . Definicin de correlaciones de juegos de caracteres . . . . . . . . . . . . . . Definicin de los datos de entrada de la etapa Folder . . . . . . . . . . . . . . . Definicin de los datos de salida de la etapa Folder . . . . . . . . . . . . . . . Etapas Hashed File . . . . . . . . . . . . Utilizacin de la etapa Hashed File . . . . . Definicin de datos de entrada de Hashed File Definicin de datos de salida de Hashed File . . Utilizacin del smbolo de euro en los sistemas sin soporte multilingstico . . . . . . . . Etapas Sequential File . . . . . . . . . . . Utilizacin de la etapa Sequential File . . . . Definicin de correlaciones de juegos de caracteres . . . . . . . . . . . . . . Definicin de datos de entrada de Sequential File Definicin de datos de salida de Sequential File Cmo se comporta la etapa Sequential . . . . Etapas Aggregator . . . . . . . . . . . . Utilizacin de una etapa Aggregator . . . . . Subrutinas anteriores y posteriores a la etapa . . Definicin de datos de entrada de Aggregator . . Definicin de datos de salida de Aggregator . . Etapa Command. . . . . . . . . . . . . Funcionalidad . . . . . . . . . . . . Terminologa . . . . . . . . . . . . . Utilizacin de la etapa Command . . . . . . Definicin de la correlacin de juego de caracteres . . . . . . . . . . . . . . Definicin de los datos de entrada de la etapa Command . . . . . . . . . . . . . . Definicin de datos de salida de etapa Command Utilizacin de mandatos . . . . . . . . . Etapas InterProcess . . . . . . . . . . . . Utilizacin de la etapa IPC . . . . . . . . Definicin de propiedades de la etapa IPC . . . Definicin de los datos de entrada de la etapa IPC . . . . . . . . . . . . . . . . Definicin de datos de salida de la etapa IPC . . Etapas FTP Plug-in . . . . . . . . . . . . Funcionalidad de la etapa FTP Plug-in . . . . Terminologa . . . . . . . . . . . . . Instalacin de la etapa . . . . . . . . . . Propiedades . . . . . . . . . . . . . Etapas Link Collector . . . . . . . . . . . Utilizacin de una etapa Link Collector . . . . Subrutinas anteriores y posteriores a la etapa . . 28 29 30 30 38 38 38 38 39 39 40 40 41 42 44 44 45 45 46 48 50 55 56 56 56 58 60 60 61 61 62 63 63 64 65 67 68 68 68 68 69 70 70 70 83 83 84

Captulo 2. Optimizacin del rendimiento en los trabajos de servidor . . . . . . 5


Trabajos y procesos de IBM InfoSphere DataStage . Sistemas de un procesador o de mltiples procesadores . . . . . . . . . . . . Particionamiento y recopilacin . . . . . . Diagnstico de limitaciones de trabajo . . . . Interpretacin de las estadsticas de rendimiento Mejora del rendimiento . . . . . . . . . Trabajos de CPU limitada: sistemas de un solo procesador . . . . . . . . . . . . Trabajos de CPU limitada: sistemas de multiprocesador . . . . . . . . . . . Trabajos limitados de E/S . . . . . . . Diseo de archivo hash . . . . . . . . . 5 . 6 . 9 . 10 12 . 13 . 13 . 13 . 15 . 15

Captulo 3. Trabajos de servidor y soporte multilingstico . . . . . . . 19


Cmo funciona la modalidad de soporte multilingstico . . . . . . . . . . . . . Juegos de caracteres internos . . . . . . . Correlacin . . . . . . . . . . . . . Entornos locales . . . . . . . . . . . . Correlaciones y entornos locales en los trabajos de IBM IBM InfoSphere DataStage . . . . . . . . Carga de correlaciones. . . . . . . . . . Carga de entornos locales. . . . . . . . . Utilizacin de correlaciones en trabajos de servidor Datos de carcter en trabajos de servidor . . . Especificacin de una correlacin predeterminada del proyecto . . . . . . . . . . . . . Especificacin de una correlacin predeterminada del trabajo . . . . . . . . . . . . . . Especificacin de una correlacin de etapa . . . Especificacin de una correlacin de columna . . Utilizacin de entornos locales en trabajos de servidor . . . . . . . . . . . . . . . Especificacin de un entorno local predeterminado del proyecto . . . . . . . Especificacin de un entorno local predeterminado del trabajo . . . . . . . . 19 19 19 20 22 22 23 23 24 24 24 25 25 25 26 26

Captulo 4. Etapas de trabajo de servidor . . . . . . . . . . . . . . 27


Etapas Complex Flat File . . . . . . . . . . 27 Trabajos existentes creados con la versin 1 de la etapa Complex Flat File . . . . . . . . . 28 Funcionalidad de la etapa Complex Flat File . . 28
Copyright IBM Corp. 1997, 2011

iii

Definicin de propiedades de la etapa Link Collector . . . . . . . . . . . . . . 84 Definicin de datos de entrada de etapa Link Collector . . . . . . . . . . . . . . 85 Definicin de datos de salida de etapa Link Collector . . . . . . . . . . . . . . 85 Etapas Link Partitioner . . . . . . . . . . 85 Utilizacin de una etapa Link Partitioner . . . 86 Subrutinas anteriores y posteriores a la etapa . . 86 Definicin de propiedades de la etapa Link Partitioner . . . . . . . . . . . . . . 87 Definicin de datos de entrada de etapa Link Partitioner . . . . . . . . . . . . . . 87 Definicin de datos de salida de etapa Link Partitioner . . . . . . . . . . . . . . 88 Etapas Merge . . . . . . . . . . . . . . 88 Funcionalidad Merge stage . . . . . . . . 88 Utilizacin de la etapa Merge . . . . . . . 88 El separador General de la pgina Etapa . . . 89 Recuadro de dilogo Seleccionar desde servidor 89 Definicin de la correlacin de juego de caracteres . . . . . . . . . . . . . . 89 Ajuste del tamao del archivo de entrada . . . 90 Definicin de propiedades de salida . . . . . 90 Etapas Pivot . . . . . . . . . . . . . . 96 Funcionalidad de la etapa Pivot . . . . . . 96 Giro de datos . . . . . . . . . . . . . 96 Ejemplos . . . . . . . . . . . . . . 97 Etapas Row Merger. . . . . . . . . . . . 99 Funcionalidad de la etapa Row merger . . . . 99 Separador General de la pgina Etapa . . . . 99 Pgina Entrada . . . . . . . . . . . . 99 Pgina Salida . . . . . . . . . . . . 101 Etapas Row Splitter . . . . . . . . . . . 101 Funcionalidad de la etapa Row Splitter . . . . 101 Separador General de la pgina Etapa . . . . 101 Pgina Entrada . . . . . . . . . . . . 102 Pgina Salida . . . . . . . . . . . . 102 Etapas Sort . . . . . . . . . . . . . . 103 Funcionalidad de la etapa Sort . . . . . . 104 Propiedades configurables . . . . . . . . 104 Criterios de ordenacin . . . . . . . . . 105 Propiedades de etapa. . . . . . . . . . 106 Etapas Transformer . . . . . . . . . . . 108 Utilizacin de una etapa Transformer . . . . 108 Componentes del editor de transformadores . . 108 Conceptos bsicos de la etapa Transformer . . 110 Edicin de las etapas Transformer . . . . . 112 Editor de expresiones de IBM InfoSphere DataStage . . . . . . . . . . . . . 123 Propiedades de la etapa Transformer . . . . 126

Depuracin de los contenedores compartidos Compilacin de un trabajo . . . . . . . . Comprobaciones de compilacin . . . . . Compilacin satisfactoria . . . . . . . Resolucin de problemas . . . . . . . Supervisor de rendimiento grfico . . . . .

. . . . .

129 131 132 132 132 132

Captulo 6. Programacin en IBM InfoSphere DataStage . . . . . . . . 135


Componentes de programacin . . . . . Rutinas . . . . . . . . . . . . Transformaciones . . . . . . . . . Funciones . . . . . . . . . . . Expresiones . . . . . . . . . . . Subrutinas . . . . . . . . . . . Macros . . . . . . . . . . . . Reglas de prioridad . . . . . . . . Cmo trabajar con las rutinas . . . . . . Recuadro de dilogo Rutina de servidor . Creacin de una rutina . . . . . . . Visualizacin y edicin de una rutina . . Cmo copiar una rutina . . . . . . . Cmo renombrar una rutina . . . . . Definicin de transformaciones personalizadas Funciones ActiveX (OLE) externas . . . . Importacin de funciones ActiveX (OLE) externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 135 136 136 137 137 137 137 138 138 140 143 144 144 144 146

. 146

Captulo 7. Programacin BASIC . . . 149


Convenios de sintaxis . . . . . . . . El lenguaje BASIC . . . . . . . . . . Constantes . . . . . . . . . . . Variables . . . . . . . . . . . . Expresiones . . . . . . . . . . . Funciones . . . . . . . . . . . Sentencias . . . . . . . . . . . Subrutinas . . . . . . . . . . . Operadores . . . . . . . . . . . Tipos de datos en las funciones y sentencias BASIC . . . . . . . . . . . . . Series BASIC vacas y valores nulos . . . Campos . . . . . . . . . . . . Palabras reservadas . . . . . . . . Cdigo fuente y cdigo objeto . . . . . Caracteres especiales . . . . . . . . Variables del sistema . . . . . . . . . Funciones y sentencias de BASIC . . . . . Directivas de compilador . . . . . . Declaracin . . . . . . . . . . . Control de trabajos . . . . . . . . Control del programa . . . . . . . Proceso de archivo secuencial . . . . . Verificacin de series y formateo . . . . Extraccin de subseries y formateo . . . Conversin de datos . . . . . . . . Formateo de datos. . . . . . . . . Funciones de entorno local . . . . . . Sentencia $Define . . . . . . . . . . Sentencias $IfDef y $IfNDef . . . . . . Sentencia $Include. . . . . . . . . . . . . . . . . . . de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 150 150 150 151 151 151 152 152 158 158 158 159 159 160 161 162 162 162 162 164 165 165 166 167 168 168 168 169 170

Captulo 5. Depuracin y compilacin de un trabajo . . . . . . . . . . . 127


El depurador de IBM InfoSphere DataStage . . Para aadir un punto de interrupcin: . . . Para aadir una variable a la lista de observaciones: . . . . . . . . . . . Para suprimir variables de la lista de observaciones, seleccione las variables y pulse Eliminar observacin.. . . . . . . . . . 127 . 127 . 128

. 128

iv

Gua del desarrollador de Server Job

Sentencia $Undefine . . Operador [] . . . . . Sentencia * . . . . . Funcin Abs. . . . . Funcin Alpha . . . . Funcin Ascii . . . . Sentencia de asignacin . funciones Bit . . . . Funciones orientadas a los Funcin Byte . . . . Funcin ByteLen . . . Funcin ByteType . . . Funcin ByteVal . . . Sentencia Call . . . . Sentencia Case . . . . Sentencia Cats . . . . Funcin Change . . . Funcin Char . . . . Funcin Checksum . . Sentencia CloseSeq . . Funcin Col1 . . . . Funcin Col2 . . . . Sentencia Common . . Funcin Compare . . . Funcin Convert . . . Sentencia Convert . . . Funcin Count . . . . Funcin CRC32. . . . Funcin de fecha . . . Funcin DCount . . . Sentencia Deffun . . . Sentencia Dimension . . Funcin Div . . . . . Funcin DownCase . . Funcin DQuote . . . DSAttachJob. . . . . DSCheckRoutine . . . DSDetachJob . . . . DSExecute . . . . . DSGetCustInfo . . . . DSGetJobInfo . . . . DSGetJobMetaBag . . . DSGetLinkInfo . . . . DSGetLinkMetaData . . DSGetLogEntry. . . . DSGetLogEventIds . . DSGetLogSummary . . DSGetNewestLogId . . DSGetParamInfo . . . DSGetProjectInfo . . . DSGetStageInfo. . . . DSGetStageLinks . . . DSGetStagesOfType . . DSGetStagesTypes . . . DSGetVarInfo . . . . DSIPCPageProps . . . DSLogEvent . . . . . DSLogFatal . . . . . DSLogInfo . . . . . DSLogToController . . DSLogWarn . . . . .

. . . . . . . . . . . . . . . . bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

170 170 171 172 172 173 173 174 175 176 176 176 177 177 178 179 179 180 180 181 181 182 183 184 185 185 186 186 187 187 188 188 189 190 190 191 191 192 192 193 193 196 197 198 199 199 200 201 202 204 204 206 207 207 207 208 209 209 210 210 210

DSMakeJobReport . . . . . . DSMakeMsg. . . . . . . . DSPrepareJob . . . . . . . DSRunJob . . . . . . . . DSSendMail . . . . . . . . DSSetDisableJobHandler. . . . DSSetDisableProjectHandler . . DSSetGenerateOpMetaData. . . DSSetJobLimit . . . . . . . DSSetParam . . . . . . . . DSSetUserStatus . . . . . . DSStopJob . . . . . . . . DSTransformError . . . . . . DSTranslateCode . . . . . . DSWaitForFile . . . . . . . DSWaitForJob . . . . . . . Funcin Dtx . . . . . . . . Funcin Ebcdic . . . . . . . Sentencia End . . . . . . . Sentencia Equate . . . . . . Funcin Ereplace . . . . . . Funcin Exchange . . . . . . Funcin Exp. . . . . . . . Funcin Field . . . . . . . Funcin FieldStore. . . . . . Funcin FIX . . . . . . . . Funcin Fmt. . . . . . . . Expresin de formato. . . . . Sintaxis . . . . . . . . Longitud de salida . . . . Carcter de relleno . . . . Justificacin . . . . . . . Formatos numrico y monetario Salida enmascarada . . . . Funcin FmtDP. . . . . . . Funcin Fold . . . . . . . Funcin FoldDP . . . . . . Sentencias For...Next . . . . . Sentencia Function . . . . . Funcin GetLocale. . . . . . Sentencia GoSub . . . . . . Sentencia GoTo . . . . . . . Funcin Iconv . . . . . . . Ejemplos . . . . . . . . Sentencias If...Else . . . . . . Sentencias If...Then...Else . . . Sentencias If...Then . . . . . Operador If...Then...Else . . . . Funcin Index . . . . . . . Funcin InMat . . . . . . . Funcin Int . . . . . . . . Funcin IsNull . . . . . . . Funcin Left. . . . . . . . Funcin Len . . . . . . . . Funcin LenDP. . . . . . . Funcin Ln . . . . . . . . Sentencia LOCATE . . . . . Sentencias Loop...Repeat. . . . Sentencia Mat . . . . . . . Funcin MatchField . . . . . Funcin Mod . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

211 212 212 213 214 214 215 215 216 216 217 217 218 218 219 220 220 221 221 222 223 224 224 225 226 227 227 228 228 228 228 228 228 229 232 232 233 233 234 236 236 237 238 238 243 244 245 245 246 246 247 247 248 248 248 249 249 251 252 253 254

Contenido

Sentencia Nap . . . . . . . . Funcin Neg . . . . . . . . Funcin Not . . . . . . . . . Sentencia Null . . . . . . . . Funcin Num . . . . . . . . Funcin Oconv . . . . . . . . Ejemplos . . . . . . . . . Sentencias On...GoSub . . . . . Sentencia On...GoTo . . . . . . Sentencia OpenSeq . . . . . . Operadores de coincidencia de patrn Funcin Pwr . . . . . . . . Sentencia Randomize . . . . . . ReadSeq . . . . . . . . . . Funcin REAL . . . . . . . . Sentencia Return . . . . . . . Sentencia Return (valor) . . . . . Funcin Right . . . . . . . . Funcin Rnd . . . . . . . . Funcin Seq . . . . . . . . . SetLocale . . . . . . . . . . Sentencia Sleep . . . . . . . . Funcin Soundex . . . . . . . Funcin Space . . . . . . . . Funcin Sqrt. . . . . . . . . Funcin SQuote . . . . . . . Funcin Status . . . . . . . . Funcin Str . . . . . . . . . Sentencia Subroutine . . . . . . Funcin Time . . . . . . . . Funcin TimeDate . . . . . . . Funciones trigonomtricas . . . . Funcin Trim . . . . . . . . Funcin TrimB . . . . . . . . Funcin TrimF . . . . . . . . Funcin UniChar . . . . . . . Funcin UniSeq . . . . . . . Funcin UpCase . . . . . . . Funcin WEOFSeq . . . . . . Funcin WriteSeq . . . . . . . Funcin WriteSeqF . . . . . . Funcin Xtd . . . . . . . . . Cdigos de conversin . . . . . D . . . . . . . . . . . . G . . . . . . . . . . . . L . . . . . . . . . . . . MB . . . . . . . . . . . . MCA . . . . . . . . . . . MC/A. . . . . . . . . . . MCD . . . . . . . . . . . MCL . . . . . . . . . . . MCM . . . . . . . . . . . MC/M . . . . . . . . . . MCN . . . . . . . . . . . MC/N . . . . . . . . . . MCP . . . . . . . . . . . MCT . . . . . . . . . . . MCU . . . . . . . . . . . MCX . . . . . . . . . . . MD. . . . . . . . . . . . ML & MR . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

254 255 255 255 256 256 257 262 263 264 265 266 266 267 268 268 269 269 270 270 270 271 272 272 273 273 273 274 275 275 276 276 278 279 279 279 279 280 280 281 282 283 283 284 287 288 289 289 290 290 291 291 292 292 292 293 293 294 294 295 298

MM . MO. . MP . . MT . . MUOC MX . . MY . . NL . . NLS . NR . . P . . R . . S . . TI . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

300 301 301 302 303 303 304 305 305 305 306 308 308 309

Captulo 8. Transformaciones y rutinas incorporadas . . . . . . . . 311


Transformaciones incorporadas . . . . . . . Transformaciones de serie . . . . . . . . Transformaciones de fecha . . . . . . . . Transformaciones de tipo de datos . . . . . Transformaciones de gestin de claves . . . . Transformaciones de medidas: rea . . . . . Transformaciones de medidas: distancia . . . Transformaciones de medidas: temperatura . . Transformaciones de medidas: tiempo . . . . Transformaciones de medidas: volumen . . . Transformaciones de medidas: peso . . . . . Transformaciones numricas . . . . . . . Transformaciones del procesador de filas . . . Transformaciones del programa de utilidad . . Rutinas incorporadas . . . . . . . . . . . Subrutinas anteriores y posteriores incorporadas Funciones de transformacin de ejemplo . . . 311 311 312 321 324 324 325 326 326 327 329 329 330 331 332 332 333

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File . . . . . . . . . . . . 335


Funcionalidad de almacenamiento en ememoria cach de disco . . . . . . . . . . . . . Terminologa . . . . . . . . . . . . . Secuencias de datos mltiples . . . . . . . Directrices para elegir un tipo de memoria cach Preparacin de la memoria cach privada de enlaces . . . . . . . . . . . . . . . Preparacin para el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema en las plataformas UNIX . . . . . . . . . . . . . . . . Requisitos especiales de AIX para determinar el tamao de la memoria cach de disco . . . . Preparacin para el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema en las plataformas Windows . . . . . . . . . . . . . . . Utilizacin de la memoria cach privada de enlaces Utilizacin de la memoria cach pblica de enlaces Utilizacin de la memoria cach del sistema . . . Creacin de un archivo hash para el almacenamiento en memoria cach del sistema . 335 336 338 338 338

338 339

340 341 342 342 342

vi

Gua del desarrollador de Server Job

Mandatos del motor de servidor . . . . . . Ajuste de la memoria cach pblica de enlaces y la memoria cach del sistema . . . . . . . . . Utilizacin del smbolo de euro en los sistemas sin soporte multilingstico . . . . . . . . . . Consideraciones sobre el rendimiento . . . . .

343 351 353 353

Enlaces a sitios Web no IBM . . . . . 361 Avisos y marcas registradas . . . . . 363 Cmo ponerse en contacto con IBM 367

Accesibilidad de los productos. . . . 357 Acceso a la documentacin de productos . . . . . . . . . . . . . 359

ndice. . . . . . . . . . . . . . . 369

Contenido

vii

viii

Gua del desarrollador de Server Job

Captulo 1. Trabajos de servidor


Los trabajos de InfoSphere DataStage constan de etapas individuales. Cada etapa describe una base de datos o proceso en concreto. Por ejemplo, una etapa puede extraer datos de un origen de datos, mientras que otra puede transformarlos. Las etapas se aaden a un trabajo y se enlazan entre ellas utilizando InfoSphere DataStage y el Diseador de QualityStage. Hay dos tipos de etapas: v Etapas integradas. Se proporcionan con InfoSphere DataStage y se utilizan para extraer, agregar, transformar y grabar datos. v Etapas suplementarias. Etapas adicionales que pueden instalarse en InfoSphere DataStage para ejecutar tareas especializadas a las que las etapas incorporadas no dan soporte. Por ejemplo, las etapas que se suministran como parte de los paquetes de InfoSphere DataStage. La paleta de herramientas del servidor organiza las etapas en los grupos siguientes: v Base de datos. Estas etapas leen o graban los datos contenidos en una base de datos. v Archivo. Estas etapas leen o graban los datos contenidos en un archivo o un conjunto de archivos. v Proceso. Estas etapas ejecutan algn proceso en los datos que se pasan entre ellas. La siguiente tabla lista los tipos de etapa disponibles y proporciona una gua rpida acerca de sus funciones:
Tipo Base de datos Etapa ODBC (consulte IBM InfoSphere DataStage and QualityStage Connectivity Guide for ODBC) Funcin Lee o graba datos en las bases de datos que dan soporte a la API estndar Open Database Connectivity.

Base de datos

Oracle 7 Load (consulte IBM InfoSphere Genera archivos de control y de datos para la carga DataStage and QualityStage Connectivity Guide masiva de datos en una sola tabla en una base de for Oracle Databases) datos Oracle. Sybase BCP Load (consulte IBM InfoSphere DataStage and QualityStage Connectivity Guide for Sybase Databases y IBM InfoSphere DataStage and QualityStage Connectivity Guide for Microsoft SQL Server and OLE DB Data) UniData (consulte IBM InfoSphere DataStage and QualityStage Connectivity Guide for IBM UniVerse and UniData) Utiliza el programa de utilidad BCP (Programa de copia en masa) para copiar programas en masa a una nica tabla de una base de datos Microsoft SQL Server o Sybase. Lee o graba datos en las bases de datos UniData.

Base de datos

Base de datos

Base de datos

UniData 6 (consulte IBM InfoSphere Lee o graba datos en las bases de datos UniData 6. DataStage and QualityStage Connectivity Guide for IBM UniVerse and UniData) UniVerse (consulte IBM InfoSphere DataStage Lee o graba datos en las bases de datos UniVerse. and QualityStage Connectivity Guide for IBM UniVerse and UniData) Complex Flat File Folder Hashed File Sequential File Lee datos de una estructura de datos de archivo sin formato complejo. Lee o graba datos como archivos en un directorio ubicado en el servidor de InfoSphere DataStage. Lee o graba datos en un archivo hash. Lee o graba datos en un archivo secuencial.

Base de datos

Archivo Archivo Archivo Archivo

Copyright IBM Corp. 1997, 2011

Tipo Proceso

Etapa Aggregator

Funcin Agrupa los datos entrantes, calcula los totales y otras funciones de resumen, y pasa los datos a otra etapa del trabajo. Ejecuta mandatos, programas y trabajos externos. Lee o graba datos en archivos secuenciales remotos utilizando FTP. Proporciona un canal de comunicacin entre dos procesos de InfoSphere DataStage que se ejecutan simultneamente en el mismo trabajo. Combina datos de diversos enlaces de entrada en un solo enlace de salida. Particiona los datos de un enlace de entrada individual en varios enlaces de salida. Combina dos archivos secuenciales en uno o varios enlaces de salida. Correlaciona conjuntos de columnas en una tabla de entrada con una nica columna de una tabla de salida. Fusiona columnas de entrada en una serie y graba la serie en una columna de salida. Reparte los datos de una serie de entrada en varias columnas de salida. Ordena los datos entrantes en valores de columna ascendentes o descendentes y los pasa a otra etapa del trabajo. Filtra y transforma los datos entrantes, y los genera como salida en otra etapa del trabajo.

Proceso Proceso Proceso

Etapa Command FTP Plug-in InterProcess

Proceso Proceso Proceso Proceso

Link Collector Link Partitioner Merge Pivot

Proceso Proceso Proceso

Row Merger Row Splitter Sort

Proceso

Transformer

Puede encontrar informacin general sobre cmo construir el trabajo y definir los metadatos necesarios utilizando el cliente del Diseador en el manual IBM InfoSphere DataStage and QualityStage Designer Client Guide. Este manual describe los editores de etapas individuales que puede utilizar para desarrollar trabajos de servidor. Algunas de estas etapas estn incorporadas y otras son suplementarias.

Etapas suplementarias
Hay un gran nmero de etapas suplementarias especializadas disponibles para InfoSphere DataStage. Pueden instalarse cuando se instala inicialmente IBM InfoSphere DataStage o ms adelante en cualquier momento. Las etapas de conectividad se utilizan para conectarse a bases de datos especficas. Aparecen en la categora Base de datos en la paleta de herramientas. Se describen en sus guas de consulta de conectividad respectivas. Las dems etapas suplementarias son etapas activas que aparecen en la categora Proceso en la paleta de herramientas. Todas se describen en esta gua.

Paquetes de IBM InfoSphere DataStage


Hay varios paquetes disponibles con InfoSphere DataStage que afectan a los trabajos del servidor; cada uno proporciona un conjunto de etapas suplementarias y una funcionalidad asociada.

Gua del desarrollador de Server Job

v Paquete XML. Este paquete se proporciona con InfoSphere DataStage. Proporciona las herramientas que permiten convertir datos entre documentos XML y tablas de datos. Las caractersticas y la funcionalidad se describen detalladamente en IBM InfoSphere DataStage XML Pack Guide. v Paquete Java. Este paquete se proporciona con InfoSphere DataStage. Est formado por dos etapas de plantillas y una API que permite implementar etapas de InfoSphere DataStage en Java. Se describe en IBM InfoSphere DataStage and QualityStage Java Pack Guide. v Paquete de servicios web. Hay dos versiones del paquete de servicios web: una permite acceder a los servicios web a travs de los trabajos de InfoSphere DataStage y la otra tambin permite publicar trabajos de InfoSphere DataStage como servicios web. Ambos paquetes son complementos de InfoSphere DataStage. Los recursos de los servicios web se describen en IBM InfoSphere DataStage Web Services Pack Guide.

Recursos personalizados
IBM InfoSphere DataStage proporciona un gran nmero de transformaciones y rutinas incorporadas para su uso en las etapas Transformer en los trabajos de servidor. Se describen en Captulo 8, Transformaciones y rutinas incorporadas, en la pgina 311. Si tiene requisitos especficos de rutinas y transformaciones personalizadas, InfoSphere DataStage dispone de un potente lenguaje de programacin de procedimientos denominado BASIC que permite definir sus propios componentes. Puede encontrar material de referencia de BASIC en Captulo 7, Programacin BASIC, en la pgina 149. Una vez desarrollados estos componentes, pueden reutilizarse en otros trabajos de InfoSphere DataStage.

Despus del desarrollo


Una vez completado el desarrollo del trabajo de servidor de IBM InfoSphere DataStage, deber compilarlo y probarlo antes de publicarlo para que est disponible para su ejecucin. InfoSphere DataStage tiene un depurador que permite eliminar los problemas con los trabajos de servidor que ha diseado. El depurador se describe en Captulo 5, Depuracin y compilacin de un trabajo, en la pgina 127. Si est satisfecho con el diseo del trabajo, puede validarlo y ejecutarlo utilizando el Director de InfoSphere DataStage y QualityStage. Tambin puede ejecutar trabajos desde otro programa o desde la lnea de mandatos utilizando los recursos que se proporcionan en el InfoSphere DataStage Development Kit, que se describe en InfoSphere DataStage Development Kit (interfaces de control de trabajo).

Captulo 1. Trabajos de servidor

Gua del desarrollador de Server Job

Captulo 2. Optimizacin del rendimiento en los trabajos de servidor


En estos temas se describen algunas tcnicas de diseo para obtener el mximo rendimiento posible de los trabajos de IBM InfoSphere DataStage que disea. Muchos de estos temas describen el diseo de un trabajo que se va a ejecutar en un sistema multiprocesador, pero tambin hay sugerencias para los trabajos que se ejecutan en sistemas de un solo procesador. Se recomienda leer estos temas antes de disear nuevos trabajos pero, si lo desea, tambin puede revisitar diseos de trabajos anteriores basndose en lo que lea aqu. Las sugerencias de proceso paralelo estn especialmente indicadas para los sistemas UNIX o Windows de multiprocesador simtrico (SMP) de hasta 64 procesadores. Para los sistemas UNIX MPP y en clster (y los sistemas Windows o UNIX SMP) hay disponibles trabajos paralelos. Para obtener detalles, consulte IBM InfoSphere DataStage and QualityStage Parallel Job Developer's Guide.

Trabajos y procesos de IBM InfoSphere DataStage


Cuando disea un trabajo, aparece en trminos de etapas y enlaces. Cuando se compila, el motor de servidor lo ve el trminos de los procesos que se ejecutan posteriormente en el servidor. Cmo define el motor de servidor un proceso? Aqu es donde es importante la distincin entre etapas activas y pasivas. Las etapas activas como, por ejemplo, Transformer y Aggregator, ejecutan tareas de proceso, mientras que las etapas pasivas como, por ejemplo, Sequential File y Hashed File, leen o graban orgenes de datos y proporcionar servicios a las etapas activas. En su forma ms simple, las etapas activas se convierten en procesos. No obstante, la situacin se complica cuando conecta etapas activas entre ellas y etapas pasivas entre ellas. Qu ocurre cuando tiene un trabajo que enlaza dos etapas pasivas? Obviamente, se produce algn proceso. De modo no visible, InfoSphere DataStage inserta una etapa Transformer reducida entre las etapas pasivas que pasa datos directamente de una etapa a otra, y se convierte en un proceso cuando se ejecuta el trabajo. Qu ocurre cuando tiene un trabajo que enlaza dos o ms etapas activas? De forma predeterminada, todas se ejecutarn en un solo proceso. Las etapas pasivas marcan los lmites del proceso y todas las etapas activas adyacentes entre ellas se ejecutan en un solo proceso. Los siguientes diagramas ilustran cmo se convierten los trabajos en procesos.

Figura 1. Proceso individual

Copyright IBM Corp. 1997, 2011

Figura 2. Un proceso individual, con una etapa pasiva enlazada a una etapa pasiva, y una etapa Transformer invisible insertada en el tiempo de compilacin

Figura 3. Proceso individual

Figura 4. Dos procesos

Sistemas de un procesador o de mltiples procesadores


El comportamiento cuando se compilan trabajos de IBM InfoSphere DataStage es ejecutar todas las etapas activas adyacentes en un solo proceso. Esto tiene sentido cuando se ejecuta el trabajo en un sistema de un procesador. Cuando se ejecuta en un sistema de mltiples procesadores, es mejor ejecutar cada etapa activa en un proceso diferente, para que los procesos puedan distribuirse entre los procesadores disponibles y ejecutarse en paralelo. Estas mejoras en los trabajos de servidor del Release 6 de InfoSphere DataStage permiten estipular en el diseo que los trabajos se compilen de esta forman. Hay dos formas de hacerlo: v Explcitamente, insertando etapas InterProcess (IPC) entre las etapas activas conectadas. v Implcitamente, activando el almacenamiento intermedio de filas entre procesos, ya sea en todo el proyecto (utilizando el Administrador de InfoSphere DataStage y QualityStage) o en trabajos individuales (en el recuadro de dilogo Propiedades del trabajo) El recurso IPC tambin puede utilizarse para producir varios procesos en los que las etapas pasivas estn conectadas directamente. Esto significa que una operacin que lee en un origen de datos y graba en otro puede dividirse en un proceso de lectura y un proceso de grabacin para aprovechar los sistemas de mltiples procesadores.

Gua del desarrollador de Server Job

El diagrama siguiente ilustra el posible comportamiento de las etapas activas:

Figura 5. Comportamiento predeterminado

Figura 6. Imposicin implcita de varios procesos mediante el almacenamiento intermedio de filas entre procesos

Captulo 2. Optimizacin del rendimiento en los trabajos de servidor

Figura 7. Utilizacin de las etapas de IPC para imponer varios procesos

El diagrama siguiente ilustra el posible comportamiento de las etapas pasivas:

Gua del desarrollador de Server Job

Figura 8. Comportamiento predeterminado con la etapa Transformer invisible insertada en el tiempo de compilacin

Figura 9. Utilizacin de la etapa IPC para imponer varios procesos, con las etapas Transformer invisibles insertadas en el tiempo de compilacin

Particionamiento y recopilacin
La etapa Link Partitioner permite particionar los datos que est leyendo, de forma que pueden procesarse en procesadores individuales que se ejecutan en varios procesadores. La etapa Link Collector permite recopilar y unir datos particionados para grabarlos en un destino de datos individual. El siguiente diagrama ilustra cmo puede utilizar las etapas Link Partitioner y Link Collector en un trabajo. Ambas etapas estn activas, y debe activar el almacenamiento intermedio de filas entre procesos a nivel de proyecto o de trabajo para poder implementar los lmites de proceso.

Figura 10. Utilizacin de las etapas Link Partitioner y Link Collector

Captulo 2. Optimizacin del rendimiento en los trabajos de servidor

Diagnstico de limitaciones de trabajo


Despus de disear un trabajo, si lo desea, puede ejecutar algunos diagnsticos para ver si el rendimiento se puede mejorar. Dos factores afectan al rendimiento de un trabajo: v Puede tener una limitacin de CPU v Puede tener una limitacin de E/S Puede obtener estadsticas detalladas sobre el rendimiento del trabajo para identificar aquellas partes de un trabajo que limitan el rendimiento y realizar cambios para aumentarlo. La coleccin de estadsticas de rendimiento puede activarse y desactivarse para cada etapa activa en un trabajo de IBM InfoSphere DataStage. Para recopilar estadsticas de rendimiento: 1. Abra la ventana Opciones de ejecucin del trabajo: v En el cliente del Diseador, pulse el botn de la barra de herramientas Ejecutar. v En el cliente del Director, seleccione el trabajo y pulse el botn de la barra de herramientas Ejecutar ahora. 2. Pulse el separador Rastreo. 3. Seleccione las etapas que desee supervisar en la lista Nombres de etapa. Utilice mayscula-pulsar para seleccionar varias etapas activas. 4. Seleccione el recuadro de seleccin Estadsticas de rendimiento. 5. Pulse Ejecutar. Si el rastreo de rendimiento est activado, se genera inmediatamente una entrada especial despus del mensaje de terminacin de la etapa en el registro de trabajo. La entrada de registro es parecida a la siguiente: job.stage.DSD.StageRun Performance statistics(...) Para ver las estadsticas de forma tabular, pulse con el botn derecho del ratn sobre la entrada de registro y seleccione Detalle. Puede copiar las estadsticas en la ventana Detalle del suceso y pegarlas en una hoja de clculo para que pueda continuar el anlisis. El siguiente diagrama muestra el trabajo desde el que se han recopilado las estadsticas. La etapa resaltada es la que tiene activado Estadsticas de rendimiento:

10

Gua del desarrollador de Server Job

Figura 11. Trabajo de ejemplo para las estadsticas de rendimiento

La tabla siguiente permite interpretar las estadsticas, que se han pegado en una hoja de clculo, como se muestra a continuacin:
Tabla 1. Estadsticas de rendimiento Enlace en el diseo de trabajo DSLink5 DSLink6 Accin Leer archivo secuencial Derivacin de transformador Grabacin entre procesos (de una etapa Transformer a una etapa Transformer) DSLink8 DSLink7 Grabar archivo secuencial Derivacin de transformador Grabar archivo secuencial Fila en la hoja de clculo 2 5 3

3 6 7

Figura 12. Hoja de clculo de estadsticas de rendimiento

Captulo 2. Optimizacin del rendimiento en los trabajos de servidor

11

Figura 13. Grfico de la hoja de clculo

El mensaje de registro de terminacin de etapa notifica el tiempo transcurrido y la CPU real utilizada por la etapa, mientras que la vista Supervisor en una etapa completada muestra el porcentaje promedio de CPU utilizada por la etapa.

Interpretacin de las estadsticas de rendimiento


Las estadsticas de rendimiento estn relacionadas con el ciclo de proceso por fila de una etapa activa, y de cada uno de sus enlaces de entrada y salida. La informacin que se muestra es: v Porcentaje. El porcentaje del tiempo de ejecucin general que utiliza esta parte del proceso. v Recuento. El nmero de veces que se ha ejecutado esta parte del proceso. v Mnimo. El tiempo mnimo transcurrido en microsegundos que ha utilizado esta parte del proceso para algunas de las filas procesadas. v Promedio. El tiempo promedio transcurrido en microsegundos que ha utilizado esta parte del proceso para las filas procesadas. Debe tener cuidado cuando interprete estas cifras. Por ejemplo, cuando se utilizan enlaces de etapa activa en curso a etapa activa, la columna de porcentaje no sumar el 100%. Asimismo, tenga en cuenta que, en estas circunstancias, si recopila estadsticas para la primera etapa activa, el coste total de la etapa activa en sentido descendente se incluye en el enlace de activa a activa (como se muestra en el diagrama de ejemplo). Esta distorsin permanece incluso cuando ejecuta las etapas activas en distintos procesos (con el almacenamiento intermedio de filas entre procesos habilitado), a menos que se ejecute realmente en un sistema de multiprocesador. Si la cifra de Mnimo y la cifra de Promedio estn muy prximas, esto indica que el proceso tiene una limitacin de CPU. De lo contrario, los trabajos con un mal rendimiento pueden tener una limitacin de E/S.

12

Gua del desarrollador de Server Job

Si la ventana del supervisor de trabajos muestra que una etapa activa est utilizando casi el 100% del tiempo de CPU, esto tambin indica que el trabajo tiene una limitacin de CPU.

Mejora del rendimiento


En las siguientes secciones se proporcionan algunos consejos sobre cmo mejorar el rendimiento de los diseos de trabajo.

Trabajos de CPU limitada: sistemas de un solo procesador


Puede mejorar el rendimiento de la mayora de trabajos de IBM InfoSphere DataStage activando el almacenamiento intermedio de filas en curso y recompilando el trabajo. Esto permite que las etapas activas conectadas pasen datos a travs de los almacenamientos intermedios en lugar de fila por fila. Puede activar el almacenamiento intermedio de filas en curso de todo el proyecto utilizando el cliente del Administrador. O bien, puede activarlo para trabajos individuales utilizando el separador Rendimiento en el recuadro de dilogo Propiedades del trabajo. Nota: No puede utilizar el almacenamiento intermedio de filas en curso si el trabajo utiliza bloques COMMON en funciones de transformacin para pasar datos entre etapas. Se recomienda redisear el trabajo para que utilice el almacenamiento intermedio de filas en lugar de los bloques COMMON.

Trabajos de CPU limitada: sistemas de multiprocesador


Para mejorar el rendimiento de la mayora de trabajos de IBM InfoSphere DataStage, active el almacenamiento intermedio de filas entre procesos y vuelva a compilar el trabajo. Esto permite que el trabajo se ejecute utilizando un proceso distinto para cada etapa activa; estos se ejecutarn simultneamente en procesadores aparte. Puede activar el almacenamiento intermedio de filas entre procesos de todo el proyecto utilizando el cliente del Administrador. O bien, puede activarlo para trabajos individuales utilizando el separador Rendimiento en el recuadro de dilogo Propiedades del trabajo. Nota: No puede utilizar el almacenamiento intermedio de filas entre procesos si el trabajo utiliza bloques COMMON en funciones de transformacin para pasar datos entre etapas. Se recomienda redisear el trabajo para que utilice el almacenamiento intermedio de filas en lugar de los bloques COMMON. Si tiene un etapa activa que utiliza casi el 100% de la CPU, puede mejorar el rendimiento ejecutando varias copias paralelas de un proceso de etapa. Para ello, duplique las etapas con un uso intensivo de la CPU (la forma ms rpida de hacerlo es utilizar un contenedor compartido) e inserte una etapa Link Partitioner y Link Collector antes y despus de las etapas duplicadas. Las siguientes capturas de pantalla muestran un ejemplo de cmo puede hacerlo.

Captulo 2. Optimizacin del rendimiento en los trabajos de servidor

13

Figura 14. Trabajo de ejemplo

Figura 15. Trabajo de ejemplo

14

Gua del desarrollador de Server Job

Trabajos limitados de E/S


Acerca de esta tarea
Aunque es difcil diagnosticar trabajos limitados de E/S y mejorarlos, hay algunos pasos bsicos que puede realizar: v Si divide los procesos del diseo de trabajo grabando los datos en un archivo secuencial para volverlos a leer, puede utilizar una etapa InterProcess (IPC) en lugar de la etapa Sequential File. De esta forma, el proceso se divide y se reduce la E/S y el tiempo transcurrido, ya que el proceso de lectura puede empezar a leer datos tan pronto como estn disponibles, en lugar de tener que esperar a que finalice el proceso de grabacin. v Si se est utilizando una etapa Sequential File intermedia para descargar un archivo para que se pueda introducir en una herramienta externa, por ejemplo, un cargador masivo o un clasificador externo, puede invocar la herramienta como un mandato de filtro en la etapa Sequential File y pasar los datos directamente a la herramienta (consulte Etapas Sequential File en la pgina 44). v Si procesa un conjunto de datos de gran tamao, puede utilizar la etapa Link Partitioner para dividirlo en varias partes sin cargar los campos intermedios. Si un trabajo todava parece que tiene una limitacin de E/S despus de realizar uno o varios de los pasos anteriores, puede utilizar las estadsticas de rendimiento para determinar qu etapas individuales tienen una limitacin de E/S.

Procedimiento
1. Ejecute el trabajo con un conjunto de datos considerable y con el rastreo de rendimiento habilitado para cada una de las etapas activas. 2. Analice los resultados y comprelos para cada etapa. En concreto, busque las etapas activas que utilicen menos CPU que otras.

Resultados
Una vez identificada la etapa, las acciones a realizar dependern de los tipos de etapa pasiva implicados en el proceso. Un archivo hash mal diseado puede tener un efecto concreto en el rendimiento (para obtener ayuda con el diseo del archivo hash, consulte Diseo de archivo hash). Para todos los tipos de etapa, se recomienda: v redistribuir los archivos en las unidades de disco v cambiar la memoria o el hardware de disco v reconfigurar las bases de datos v reconfigurar el sistema operativo

Diseo de archivo hash


Los archivos hash mal diseados pueden hacer que disminuya el rendimiento. Los archivos hash se utilizan normalmente para proporcionar una tabla de referencia basada en una clave individual. Realizar bsquedas puede ser rpido en un archivo bien diseado, pero lento en uno mal diseado. Otro uso es alojar tablas de dimensiones de crecimiento lento en un diseo de almacn de esquema de estrella. De nuevo, un archivo bien diseado har que la extraccin de datos de los archivos de dimensin sea mucho ms rpida.

Operacin bsica del archivo hash


Si est familiarizado con los principios de los archivos hash, puede omitir esta seccin. Los archivos hash funcionan distribuyendo los datos entre varios grupos de un archivo. Esto acelera el acceso a los datos, ya que puede ir a un grupo especfico antes de buscar secuencialmente en los datos

Captulo 2. Optimizacin del rendimiento en los trabajos de servidor

15

que contiene una determinada fila de datos. El nmero de grupos que tiene, el tamao de los grupos y el algoritmo utilizado para determinar la distribucin se deciden segn la naturaleza de los datos que est almacenando en el archivo. Se ejecuta hash en las filas de datos (es decir, se asignan a los grupos) en un campo de clave. El algoritmo hash convierte de forma eficaz y repetible una serie en un nmero del rango del 1 al n, donde n es el mdulo de archivo. Esto proporciona el grupo donde se grabarn las filas. El campo de clave puede ser de cualquier tipo; por ejemplo, puede contener un nombre, un nmero de serie, una fecha, etc. El tipo de datos en la clave determina el algoritmo hash ptimo que se puede utilizar al grabar datos; este algoritmo tambin se utiliza para ubicar los datos cuando se vuelven a leer. El objetivo es utilizar un algoritmo que distribuya los datos uniformemente en el archivo. El otro objetivo es distribuir los datos lo ms uniformemente posible entre varios grupos. En trminos de rendimiento, es especialmente importante que los grupos no estn superpoblados y no que se tengan que ampliar a grupos de desbordamiento, ya que esto dificulta el acceso a los datos. Asimismo, es importante tener en cuenta el tamao de los registros (las filas) cuando se disea el archivo, ya que es preferible que se ajusten equitativamente a los grupos y no generen desbordamientos. Existe una relacin de compensacin entre el tamao del grupo y el nmero de grupos. En la mayora de operaciones, un buen diseo tiene muchos grupos de pequeo tamao (por ejemplo, cuatro registros por grupo). La bsqueda secuencial de la fila de datos necesaria no ser nunca tan larga. No obstante, puede haber casos en los que el diseo funcionar mejor con un nmero pequeo de grupos grandes.

Archivos hash de IBM InfoSphere DataStage


Hay dos tipos bsicos de archivos hash que puede utilizar en estas circunstancias: esttico (hash) y dinmico. v Archivos estticos. Son los que ofrecen el mximo rendimiento si estn bien diseados. No obstante, si estn mal diseados, es probable que ofrezcan el mnimo rendimiento. Los archivos estticos permiten decidir de qu forma se ejecuta hash en el archivo. Puede especificar: Algoritmo hash. La forma en que se asignan las filas de datos a los distintos grupos, dependiendo del valor de sus campos de clave. Mdulo. El nmero de grupos que tiene el archivo. Separacin. El tamao del grupo como el nmero de bloques de 512 bytes. En general, deber utilizar un archivo esttico si conoce el tamao y la forma de los datos que se van a almacenar en el archivo hash. Puede reestructurar un archivo hash esttico entre ejecuciones de trabajo si desea ajustarlo. Para ello, utilice el mandato RESIZE, que puede emitirse mediante la caracterstica Mandato del cliente del Administrador. El mandato para cambiar el tamao de un archivo esttico es:
RESIZE nombre_archivo [tipo] [mdulo] [separacin]

Donde: nombre_archivo es el nombre del archivo al que se cambia el tamao. tipo especifica el algoritmo de hash que se utiliza (consulte Diseo de archivo hash en la pgina 15) mdulo especifica el nmero de grupos en el rango de 1 a 8.388.608. separacin especifica el tamao de los grupos en bloques de 512 bytes y est en el rango de 1 a 8.388.608. v Archivos dinmicos. Hay archivos hash que cambian dinmicamente cuando se graban datos en ellos con el tiempo. Esto puede sonar ideal, pero si se deja un crecer orgnicamente archivo dinmico, deber realizar varias opciones de divisin en grupos mientras se graban los datos en l, lo que puede consumir mucho tiempo y reducir el rendimiento si tiene un archivo con un rpido crecimiento. Los archivos dinmicos no funcionan tan bien como un archivo esttico bien diseado, pero funcionan

16

Gua del desarrollador de Server Job

mejor que uno mal diseado. Cuando se crea un archivo dinmico, puede especificar la siguiente informacin (aunque todas estas opciones tienen valores predeterminados): Mdulo mnimo. El nmero mnimo de grupos que tiene el archivo. El valor predeterminado es 1. Tamao del grupo. El grupo puede especificarse como 1 (2048 bytes) o 2 (4096 bytes). El valor predeterminado es 1. Carga partida. Especifica cunto puede cargarse un archivo (en porcentaje) antes de partirse. El carga del archivo se calcula de la manera siguiente:
Carga del archivo = ((total de bytes de datos) / (total de bytes de archivo)) * 100

La carga partida predeterminada es 80. Carga con fusin. Especifica cmo puede ser de pequea la carga de un archivo (en porcentaje) antes de que se parta el archivo. La carga del archivo se calcula como la carga partida. El valor predeterminado es 50. Registro grande. Especifica el nmero de bytes que puede contener un registro (fila). Un registro de gran tamao siempre se coloca en un grupo de desbordamiento. Algoritmo Hash. Elija GENERAL para la mayora de tipos de campo de clave y SEQ.NUM para las claves que son una serie de nmeros secuencial. Tamao de registro. De manera opcional, utilice esta opcin para especificar el tamao de registro medio en bytes. A continuacin, puede utilizarse para calcular el tamao de grupo y el tamao de registro grande. Puede cambiar manualmente el tamao de un archivo dinmico utilizando el mandato RESIZE, que se emite mediante la caracterstica Mandato del cliente del Administrador. El mandato para cambiar el tamao de un archivo dinmico es:
RESIZE nombre_archivo [parmetro] [valor]

donde: nombre_archivo es el nombre del archivo al que se cambia el tamao. parmetro es uno de los siguientes y se corresponde con los argumentos descritos anteriormente para crear un archivo dinmico:
GENERAL | SEQ.NUM MINIMUM.MODULUS n SPLIT.LOAD n MERGE.LOAD n LARGE.RECORD n RECORD.SIZE n

De forma predeterminada, InfoSphere DataStage crear un archivo dinmico con los valores predeterminados descritos anteriormente. No obstante, puede utilizar las opciones de Crear archivo en la pgina Entradas de la etapa Hashed File para especificar el tipo de archivo y sus valores. Esto ofrece la opcin de varios tipos de archivos hash (estticos) y un tipo de archivo dinmico. Los distintos tipos de archivos estticos reflejan los distintos algoritmos hash que utilizan. Elija un tipo segn su tipo de clave, tal como se muestra a continuacin: Tipo 2 3 4 5 6 7 Adecuado para las claves que se forman de la siguiente manera: Numrica, significativa en los ltimos 8 caracteres Mayormente numrica con delimitadores, significativa en los ltimos 8 caracteres Alfabtica, significativa en los ltimos 5 caracteres Cualquier clave ASCII, significativa en los ltimos 4 caracteres Numrica, significativa en los primeros 8 caracteres Mayormente numrica con delimitadores, significativa en los primeros 8 caracteres
Captulo 2. Optimizacin del rendimiento en los trabajos de servidor

17

8 9 10 11 12 13 14 15 16 17 18

Alfabtica, significativa en los primeros 5 caracteres Cualquier clave ASCII, significativa en los primeros 4 caracteres Numrica, significativa en los ltimos 20 caracteres Mayormente numrica con delimitadores, significativa en los ltimos 20 caracteres Alfabtica, significativa en los ltimos 16 caracteres Cualquier clave ASCII, significativa en los ltimos 16 caracteres La clave numrica completa es significativa Mayormente numrica con delimitadores, la clave completa es significativa La clave alfabtica completa es significativa Cualquier clave ASCII completa es significativa Cualquier clave de caracteres completa es significativa

Mejoras operativas
Puede realizar varios pasos en el diseo del trabajo para acelerar las operaciones que leen y graban archivos hash. v Precarga. Puede acelerar las operaciones de lectura de los enlaces de referencia si precarga un archivo hash en la memoria. Puede especificarlo en la pgina Salidas de la etapa Hashed File. v Memoria cach de grabacin. Puede especificar una memoria cach para las operaciones de grabacin de forma que los datos se graben en ella y se desechen en el disco. Esto garantiza que los archivos hash se graben en el disco en el orden del grupo, en lugar del orden en el que se graban las filas individuales (que por su naturaleza necesitarn un acceso de disco aleatorio ms lento). Si el almacenamiento en la memoria cach del servidor est habilitado, puede especificar el tipo de almacenamiento en la memoria cach de grabacin cuando cree el archivo has, y el archivo siempre utilizar el tipo especificado de memoria cach de grabacin. De lo contrario, puede activar la memoria cach de grabacin a nivel de etapa en la pgina Salidas de la etapa Hashed File. v Preasignacin. Si utiliza archivos dinmicos, puede acelerar la carga del archivo realizando algunos clculos preliminares y especificar el mdulo mnimo segn corresponda. Esto mejora significativamente la operacin al recortar o eliminar las operaciones de divisin. Puede calcular el mdulo mnimo de la siguiente manera:
mdulo mnimo = tamao de datos estimado/(tamao de grupo * 2048)

Una vez calculado el mdulo mnimo, puede especificarlo para crear un archivo (utilizando la caracterstica Crear archivo del recuadro de dilogo Etapa Hashed File; consulte Definicin de datos de entrada de Hashed File en la pgina 41) o cambiar el tamao de un archivo existente (utilizando el mandato RESIZE que se describe en Archivos hash de IBM InfoSphere DataStage en la pgina 16). v Clculo del mdulo de un archivo esttico. Puede calcular el mdulo necesario para un archivo esttico utilizando un mtodo parecido al que se ha descrito anteriormente para calcular un mdulo de preasignacin para los archivos dinmicos:
mdulo = tamao de datos estimado/(separacin * 512)

Una vez calculado el mdulo, puede especificarlo para crear un archivo (utilizando la caracterstica Crear archivo del recuadro de dilogo Etapa Hashed File; consulte Definicin de datos de entrada de Hashed File en la pgina 41) o cambiar el tamao de un archivo existente (utilizando el mandato RESIZE que se describe en Archivos hash de IBM InfoSphere DataStage en la pgina 16).

18

Gua del desarrollador de Server Job

Captulo 3. Trabajos de servidor y soporte multilingstico


Estos temas proporcionan detalles acerca del soporte multilingstico en trabajos de servidor de IBM InfoSphere DataStage. Incluye: v Correlaciones y entornos locales disponibles en los trabajos de servidor v Carga de correlaciones y de entornos locales v Consideraciones sobre los datos de carcter en los trabajos de servidor v Cmo utilizar las correlaciones y los entornos locales en los trabajos de servidor v Creacin de nuevas correlaciones para los trabajos de servidor v Creacin de nuevos entornos locales para los trabajos de servidor

Cmo funciona la modalidad de soporte multilingstico


El soporte multilingstico funciona con dos tipos de juegos de caracteres: v El juego de caracteres interno del soporte multilingstico v Juegos de caracteres externos que cubren los distintos idiomas del mundo En modalidad de soporte multilingstico, InfoSphere DataStage correlaciona entre los dos juegos de caracteres, si es necesario. El mecanismo para manejar el soporte multilingstico vara para los trabajos paralelos y los trabajos de servidor. Cada uno utiliza un juego de caracteres interno distinto, de manera que utilizan un conjunto distinto de correlaciones para la conversin de datos. Tenga en cuenta que son algunos tipos de series (es decir, caracteres) que necesitan correlacin; los tipos de datos puramente numricos no la requieren nunca. Los trabajos paralelos y de servidor utilizan tambin entornos locales distintos.

Juegos de caracteres internos


El juego de caracteres interno puede representar, como mnimo, 64.000 caracteres. Cada carcter del juego de caracteres interno tiene un punto de cdigo exclusivo. Este es un nmero que, por convencin, se representa en formato hexadecimal. Puede utilizar este nmero para representar el carcter en programas. InfoSphere DataStage almacena fcilmente varios idiomas. El juego de caracteres interno del soporte multilingstico forma el estndar Unicode. El consorcio de Unicode especifica varias formas de representar puntos de cdigo, conocidas como Formatos de transformacin de Unicode (UTF). Los trabajos de servidor utilizan UTF-8, y los trabajos paralelos, UTF-16. Dado que los dos tipos de trabajo utilizan distintos juegos de caracteres internos, se facilita un juego distinto de correlaciones para la conversin a y de cada uno de ellos (aunque para los trabajos paralelos se facilitan equivalentes de las correlaciones de trabajos de servidor que se utilizan comnmente). Para obtener ms informacin sobre Unicode, consulte la pgina Web a nivel mundial del Consorcio de Unicode en http://www.unicode.org.

Correlacin
Cuando debe transformar o transferir datos, el soporte multilingstico correlaciona los datos en o de el juego de caracteres externo que desee utilizar. El soporte multilingstico incluye tablas de correlacin
Copyright IBM Corp. 1997, 2011

19

para muchos de los juegos de caracteres externos que se utilizan en el mundo (consulte la lista de IBM InfoSphere DataStage and QualityStage Globalization Guide). Puede especificar correlaciones a distintos niveles dentro de InfoSphere DataStage: v Un valor predeterminado de todo el proyecto. En el cliente del Administrador de InfoSphere DataStage and QualityStage especifique una correlacin predeterminada para todos los trabajos de servidor de un proyecto, y una correlacin predeterminada para todos los trabajos paralelos de un proyecto. v Un valor predeterminado de trabajo. En el cliente del Diseador de InfoSphere DataStage and QualityStage puede especificar una correlacin predeterminada utilizada por un trabajo concreto que sobrescribe el valor predeterminado de proyecto. v Una correlacin de etapa. Algunas etapas paralelas y de servidor permiten especificar que utilizan una correlacin determinada. Esto sustituye el valor predeterminado del proyecto y del trabajo. v Una correlacin de columna. Algunas etapas paralelas y de servidor soportan la correlacin por columna. Ello le permite especificar una correlacin concreta para determinadas columnas de datos. Esto sustituye el valor predeterminado de proyecto, el valor predeterminado de trabajo y las correlaciones de etapa. Si los archivos incluyen caracteres ASCII de 7 bits, es necesario que no se correlacionen.

Entornos locales
Un entorno local de soporte multilingstico de InfoSphere DataStage es un conjunto de convenciones nacionales. Un entorno local se ve como una entidad separada de un juego de caracteres. Debe tener en cuenta el idioma, el juego de caracteres, y las convenciones para el formateo de los datos que no o varios grupos de personas utilizan. Defina el juego de caracteres por separado, aunque para que las convenciones nacionales funcionen correctamente, debe utilizar tambin los juegos de caracteres adecuados. Por ejemplo, tanto Venezuela como Ecuador utilizan el espaol como idioma, pero tienen convenciones de formateo de datos distintas. Los entornos locales no respetan los lmites nacionales. Un pas puede utilizar varios entornos locales, por ejemplo, Canad utiliza dos y Blgica utiliza tres. Varios pases pueden utilizar un entorno local, por ejemplo, una empresa multinacional podra definir un entorno local a nivel mundial para utilizarlo en todas sus oficinas. Consulte IBM InfoSphere DataStage and QualityStage Globalization Guide para obtener una lista de todos los entornos locales facilitados con InfoSphere DataStage y los territorios e idiomas relacionados. Los trabajos de servidor le permiten elegir entornos locales de manera individual para diferentes aspectos de las convenciones nacionales: v Formato para horas y fechas v v v v Formato para visualizar nmeros Visualizacin de valores monetarios Si un carcter es alfabtico, numrico, si no puede imprimirse, etc. Orden en que deben ordenarse los caracteres (clasificacin)

Puede combinar entornos locales si es necesario, por ejemplo podra especificar horas y fechas en un entorno local y convenciones monetarias en otro. Los trabajos paralelos le permiten elegir entornos locales de manera individual para: v Orden en que deben ordenarse los caracteres (clasificacin) Puede especificar entornos locales a distintos niveles dentro de InfoSphere DataStage: v Un valor predeterminado de todo el proyecto. En el cliente del Administrador especifique los entornos locales predeterminados para todos los trabajos de servidor de un proyecto, y un entorno local predeterminado para todos los trabajos paralelos del proyecto.

20

Gua del desarrollador de Server Job

v Un valor predeterminado de trabajo. En el cliente del Diseador puede especificar entornos locales predeterminados utilizados por un trabajo concreto que sobrescribe el valor predeterminado de proyecto. v Un entorno local de etapa. Algunas etapas paralelas permiten especificar que utilizan un entorno local determinado. Esto sustituye el valor predeterminado del proyecto y del trabajo. Este manual utiliza el trmino territorio en lugar de pas para describir una zona que utiliza un entorno local.

Hora y fecha
La mayor parte de los territorios tienen un estilo preferido para presentar las horas y las fechas. En cuanto a las horas, suele ser una eleccin entre un reloj de 12 horas o un reloj de 24 horas. En cuanto a las fechas, existen ms variaciones. Aqu aparecen algunos ejemplos de formatos utilizados por los distintos entornos locales para expresar las 9.30 de la noche del da 1 de abril de 1990:
Territorio Francia EE.UU. Japn Hora 21h30 9:30 p.m. 21:30 Fecha 1.4.90 4/1/90 90.4.1 Entorno local InfoSphere DataStage FR-FRENCH US-ENGLISH JP-JAPANESE

Numrico
Esta convencin define la forma en que se muestran los nmeros, incluyendo: v El carcter utilizado como separador decimal (carcter raz) v Carcter utilizado como separador de millares v Si los ceros del principio se deben utilizar para los nmeros de 1 a -1 Por ejemplo, los nmeros siguientes pueden significar mil, dependiendo del entorno local en que los utilice:
Territorio Irlanda Pases Bajos Francia Nmero 1,000 1.000 1 000 Entorno local InfoSphere DataStage IE-ENGLISH NL-DUTCH FR-FRENCH

Monetaria
Esta convencin define la forma en que se muestran los valores monetarios, incluyendo: v Carcter utilizado como separador decimal. Este puede ser distinto que el separador decimal utilizado en los formatos numricos. v Carcter utilizado como separador de millares. Este puede ser distinto que el separador de miles utilizado en los formatos numricos. v El smbolo de la moneda local del territorio, por ejemplo, $, o . v La serie utilizada como smbolo de moneda internacional, por ejemplo, USD (dlares estadounidenses) NOK (Kroner noruego), JPY (Yen japons). v El nmero de las posiciones decimales que se utilizan en los valores monetarios locales. v El nmero de las posiciones decimales que se utilizan en los valores monetarios internacionales. v El signo que se utiliza para indicar los valores monetarios positivos.
Captulo 3. Trabajos de servidor y soporte multilingstico

21

v El signo que se utiliza para indicar los valores monetarios negativos. v Las posiciones relativas del smbolo de moneda y los signos positivo o negativo de los valores monetarios. A continuacin se facilitan ejemplos de los formatos monetarios que utilizan los distintos entornos locales:
Moneda Dlares de EE.UU. Libras de GB Marcos de Alemania Euros de Alemania Formato (Format) $123.45 37,000.00 DM123,45 123,45 Entorno local InfoSphere DataStage US-ENGLISH GB-ENGLISH DE-GERMAN DE-GERMAN-EURO

Tipo de carcter
Esta convencin define si un carcter es alfabtico, numrico, si no puede imprimirse, etc. Esta convencin define tambin las normas de maysculas y minsculas, por ejemplo, algunas letras llevan acento en minsculas pero no en maysculas.

Ordenacin
Esta convencin define el orden en que se clasifican los caracteres, es decir, el orden. Puede haber muchas variaciones en el orden de clasificacin dentro de un nico juego de caracteres. Por ejemplo, el carcter sigue al carcter A en Alemania, pero sigue al carcter Z en Suecia.

Correlaciones y entornos locales en los trabajos de IBM IBM InfoSphere DataStage


Cuando instala InfoSphere DataStage con el soporte multilingstico habilitado, se instalan un gran nmero de correlaciones y entornos locales. InfoSphere DataStage realiza una distincin entre las correlaciones y los entornos locales disponibles y las correlaciones y los entornos locales cargados. Dependiendo de qu idioma especifique al instalar InfoSphere DataStage, se compilan y se cargan un conjunto de correlaciones y de entornos locales preparados para su uso cuando se disean y se ejecutan los trabajos del servidor de InfoSphere DataStage. Las correlaciones y los entornos locales disponibles son los que InfoSphere DataStage tiene disponibles para la compilacin y la carga; pueden especificarse cuando se disean los trabajos, pero deben cargarse realmente antes de ejecutar un trabajo que los utiliza. Puede ver qu correlaciones y entornos locales hay cargados actualmente y cules estn disponibles en el Administrador de InfoSphere DataStage: 1. Abra el cliente del Administrador. 2. Pulse el separador Proyectos para pasar a la pgina Proyectos. 3. Seleccione un proyecto y pulse el botn NLS... para abrir el dilogo Valores de soporte multilingstico del proyecto para el proyecto. De forma predeterminada, se muestran todas las correlaciones cargadas actualmente para los trabajos de servidor. Elija la opcin Mostrar todas las correlaciones para ver una lista de las correlaciones disponibles para la carga. 4. Para ver los entornos locales cargados, pulse el separador Entornos locales del servidor. Pulse la flecha abajo al lado de la categora de entorno local para ver la lista desplegable de los entornos locales cargados. Seleccione la opcin Mostrar todos los entornos locales para que las listas desplegables muestren todas las correlaciones disponibles para la carga.

Carga de correlaciones
Puede cargar una de las correlaciones disponibles para que los trabajos puedan utilizarla en el tiempo de ejecucin.

22

Gua del desarrollador de Server Job

Procedimiento
1. En la pgina Correlaciones del servidor, pulse el botn Instalar. La pgina se expande para mostrar las listas de correlaciones disponibles y cargadas: 2. Seleccione la correlacin que desee cargar en la lista Disponibles de la izquierda y pulse el botn Aadir. Un recuadro de dilogo solicitar que confirme la accin. Pulse S. Cuando la correlacin se haya compilado, se aadir a la lista Instaladas de la derecha. Debe detener y reiniciar el motor de servidor para que se cargue del todo, por lo que inicialmente no aparece ninguna marca de referencia al lado. 3. Para detener y reiniciar el motor, rearranque la mquina, o detenga e inicie los servicios de IBM InfoSphere DataStage (consulte la Gua del cliente del administrador para obtener instrucciones sobre cmo hacerlo). La correlacin estar disponible para los trabajos en el tiempo de ejecucin.

Carga de entornos locales


Puede cargar uno de los entornos locales disponibles para que los trabajos puedan utilizarlo en el tiempo de ejecucin.

Procedimiento
1. En la pgina Entornos locales del servidor, pulse el botn Instalar. La pgina se expande para mostrar las listas de entornos locales disponibles y cargados: 2. Seleccione el entorno local que desee cargar en la lista Disponibles de la izquierda y pulse el botn Aadir. Un recuadro de dilogo solicitar que confirme la accin. Pulse S. Cuando el entorno local se haya compilado, se aadir a la lista Instalados de la derecha. Debe detener y reiniciar el motor de servidor para que se cargue del todo, por lo que inicialmente no aparece ninguna marca de referencia al lado. 3. Para detener y reiniciar el motor de servidor, rearranque la mquina, o detenga e inicie los servicios de DataStage (consulte la Gua del cliente del administrador para obtener instrucciones sobre cmo hacerlo). El entorno local estar disponible para los trabajos en el tiempo de ejecucin.

Utilizacin de correlaciones en trabajos de servidor


Debe utilizar una correlacin siempre que lee datos de caracteres (distintos de ASCII de 7 bits) en IBM InfoSphere DataStage o que graba datos de caracteres de InfoSphere DataStage. La correlacin indica a InfoSphere DataStage cmo convertir el juego de caracteres externo en un juego de caracteres Unicode interno. No es necesario correlacionar los datos si est: v Manejando datos puramente numricos. v Leyendo o grabando en una etapa que representa el almacenamiento interno proporcionado por InfoSphere DataStage (es decir, una etapa Hashed File o una etapa UniVerse). v Leyendo o grabando en una base de datos UniVerse externa con el soporte multilingstico habilitado. v Leyendo o grabando datos ASCII de 7 bits. InfoSphere DataStage permite especificar la correlacin que debe utilizar en los distintos puntos de un diseo de trabajo: v Puede especificar la correlacin predeterminada de un proyecto. Se utilizar en todas las etapas de todos los trabajos de un proyecto, a menos que se altere temporalmente en el diseo del trabajo. v Puede especificar la correlacin predeterminada de un trabajo. Se utilizar en todas las etapas de un trabajos (sustituyendo el valor predeterminado del proyecto), a menos que se altere temporalmente en el diseo del trabajo. v Puede especificar una correlacin para que una determinada etapa en el trabajo. Esto sustituye el valor predeterminado del proyecto y del trabajo.

Captulo 3. Trabajos de servidor y soporte multilingstico

23

v Para determinadas etapas, puede especificar una correlacin de columnas individuales, que altera temporalmente el proyecto, el trabajo y las correlaciones predeterminadas de la etapa.

Datos de carcter en trabajos de servidor


Slo es necesario especificar una correlacin de juego de caracteres donde el trabajo procesa datos de carcter. IBM InfoSphere DataStage tiene varios tipos de carcter que pueden especificarse como el tipo SQL de una columna: v v v v v v Char VarChar LongVarChar NChar NVarChar NLongVarChar

Todos los tipos anteriores denotan columnas de serie, que deben correlacionarse con el juego de caracteres Unicode interno de InfoSphere DataStage.

Especificacin de una correlacin predeterminada del proyecto


La correlacin predeterminada para un proyecto se especifica en el cliente del Administrador de IBM InfoSphere DataStage.

Procedimiento
1. Abra el cliente del Administrador. 2. Pulse el separador Proyectos para pasar a la pgina Proyectos. 3. Seleccione el proyecto para el que desee establecer una correlacin predeterminada y pulse el botn NLS... para abrir el dilogo Valores de soporte multilingstico del proyecto para el proyecto. De forma predeterminada, se muestran todas las correlaciones cargadas actualmente para los trabajos de servidor. 4. Elija la correlacin que desee en la lista Nombre de correlacin predeterminada. Puede seleccionar la opcin Mostrar todas las correlaciones y elegir una correlacin que no se haya cargado todava, pero tenga en cuenta que deber cargar la correlacin (consulte "Carga de correlaciones") antes de ejecutar los trabajos que utilizan la correlacin. 5. Pulse Aceptar. La correlacin seleccionada es ahora la predeterminada para el proyecto y la que utilizan todos los trabajos del proyecto.

Especificacin de una correlacin predeterminada del trabajo


Puede especificar una correlacin predeterminada para un trabajo especfico en el Diseador de IBM InfoSphere DataStage, utilizando el recuadro de dilogo Propiedades del trabajo.

Procedimiento
1. Abra el trabajo para el que desea establecer la correlacin en el Diseador de InfoSphere DataStage. 2. Abra el recuadro de dilogo Propiedades de trabajo para dicho trabajo (elija Editar > Propiedades de trabajo). 3. Pulse el separador Soporte multilingstico para pasar a la pgina Soporte multilingstico: 4. Elija la correlacin que desee en la lista Correlacin predeterminada para las etapas. Seleccione la opcin Mostrar todas las correlaciones y elija una correlacin que no se haya cargado todava, pero tenga en cuenta que deber cargar la correlacin (consulte "Carga de correlaciones") antes de ejecutar el trabajo. 5. Pulse Aceptar. La correlacin seleccionada es ahora la predeterminada para el trabajo y la que utilizan todas las etapas del trabajo.

24

Gua del desarrollador de Server Job

Especificacin de una correlacin de etapa


Puede especificar una correlacin para una etapa.

Acerca de esta tarea


Especifique una correlacin para que una determinada etapa utilice el dilogo del editor de etapas en el Diseador de IBM InfoSphere DataStage. Puede especificar correlaciones para todos los tipos de etapa, excepto: v Las etapas activas como, por ejemplo, la etapa Aggregator y Transformer. Estas manejan los datos que se han especificado en InfoSphere DataStage y, por lo tanto, ya se han correlacionado. v Las etapas que utilizan el almacenamiento interno ofrecido por InfoSphere DataStage, es decir, las etapas Hashed File y UniVerse. Estas manejan los datos en el juego de caracteres Unicode, por lo que no requieren ninguna correlacin.

Procedimiento
1. Abra el editor de etapas en el trabajo en el cliente del Diseador. Seleccione el separador NLS de la pgina Etapa. 2. Realice uno de los pasos siguientes: v Elija la correlacin que desee en la lista Nombre de correlacin que se utiliza con la etapa. Seleccione la opcin Mostrar todas las correlaciones y elija una correlacin que no se haya cargado todava, pero tenga en cuenta que deber cargar la correlacin (consulte Carga de correlaciones en la pgina 22) antes de ejecutar el trabajo que contiene la etapa. v Pulse el botn Utilizar parmetro de trabajo... Esta opcin permite seleccionar un parmetro de trabajo existente o especificar uno nuevo. Cuando se ejecuta el trabajo, InfoSphere DataStage utilizar el valor del parmetro para el nombre de correlacin. 3. Pulse Aceptar. La etapa utilizar el parmetro de trabajo o la correlacin seleccionada.

Especificacin de una correlacin de columna


Algunos tipos de etapa de trabajo de servidor permiten especificar una correlacin que se utiliza para una determinada columna en los datos manejados por dicha etapa.

Acerca de esta tarea


Las siguientes etapas permiten la correlacin por columnas: v Etapa ODBC v Etapa Sequential File

Procedimiento
1. Abra el editor de etapas en el trabajo. Pulse el separador NLS de la pgina Etapa: 2. Seleccione la opcin Permitir correlacin por columnas. A continuacin, vaya a la pgina Entradas o Salidas (dependiendo de si est grabando o leyendo datos) y seleccione el separador Columnas: 3. La cuadrcula de columnas tiene ahora un campo adicional denominado Correlacin de soporte multilingstico. Seleccione la correlacin que desee para una determinada columna en la lista desplegable. 4. Pulse Aceptar.

Utilizacin de entornos locales en trabajos de servidor


Los entornos de trabajo permiten especificar que los datos se manejan de acuerdo con los convenios de un determinado territorio. No existe siempre una relacin directa entre el entorno local y el idioma, por ejemplo, el entorno local del francs es distinto al del francs canadiense.
Captulo 3. Trabajos de servidor y soporte multilingstico

25

Los trabajos de servidor le permiten elegir entornos locales de manera individual para diferentes aspectos de las convenciones nacionales: v Formato para horas y fechas v Formato para visualizar nmeros v Visualizacin de valores monetarios v Si un carcter es alfabtico, numrico, si no puede imprimirse, etc. v Orden en que deben ordenarse los caracteres (clasificacin) Puede combinar entornos locales si es necesario, por ejemplo podra especificar horas y fechas en un entorno local y convenciones monetarias en otro. En "Entornos locales", se proporcionan descripciones de cada tipo de convenio. En los trabajos del servidor, puede establecer un entorno local predeterminado para un proyecto o para un trabajo individual.

Especificacin de un entorno local predeterminado del proyecto


El entorno local predeterminado para un proyecto se especifica en el cliente del Administrador de IBM InfoSphere DataStage.

Procedimiento
1. Abra el cliente del Administrador. 2. Pulse el separador Proyectos para pasar a la pgina Proyectos. 3. Seleccione el proyecto para el que desee establecer una correlacin predeterminada y pulse el botn NLS... para abrir el dilogo Valores de soporte multilingstico del proyecto para el proyecto. Pulse el separador Entornos locales del servidor para pasar a la pgina Entornos locales del servidor. 4. Pulse la flecha que aparece al lado de la categora para la que desea establecer un entorno local y elija un entorno local en la lista desplegable. Puede seleccionar la opcin Mostrar todos los entornos locales y elegir un entorno local que no se haya cargado todava, pero tenga en cuenta que deber cargar el entorno local (consulte "Carga de entornos locales") antes de ejecutar los trabajos que lo utilizan. 5. Pulse Aceptar. El entorno local seleccionado es ahora el predeterminado para la categora en el proyecto y el que utilizan todos los trabajos del proyecto.

Especificacin de un entorno local predeterminado del trabajo


Puede especificar un entorno local predeterminado para un trabajo especfico en el Diseador de IBM InfoSphere DataStage, utilizando el recuadro de dilogo Propiedades del trabajo.

Procedimiento
1. Abra el trabajo para el que desee establecer el entorno local en el cliente del Diseador. 2. Abra el recuadro de dilogo Propiedades de trabajo para dicho trabajo (elija Editar > Propiedades de trabajo). 3. Pulse el separador Soporte multilingstico para pasar a la pgina Soporte multilingstico: 4. Pulse la flecha que aparece al lado de la categora para la que desea establecer un entorno local y elija un entorno local en la lista desplegable. Puede seleccionar la opcin Mostrar todos los entornos locales y elegir un entorno local que no se haya cargado todava, pero tenga en cuenta que deber cargar el entorno local (consulte "Carga de entornos locales") antes de ejecutar el trabajo. 5. Pulse Aceptar. El entorno local seleccionado es ahora el predeterminado para la categora en el trabajo y el que utilizan todas las etapas del trabajo.

26

Gua del desarrollador de Server Job

Captulo 4. Etapas de trabajo de servidor


Etapas Complex Flat File
La etapa Complex Flat File permite convertir los datos extrados de los archivos sin formato complejos que se generan en un sistema principal de IBM. Un archivo sin formato complejo tiene una estructura jerrquica en su disposicin de las columnas. Fsicamente es un archivo sin formato (es decir, no tiene punteros ni ninguna otra infraestructura complicada), pero lgicamente representa relaciones padre-hijo. Puede utilizar varios tipos de registro para conseguir esta estructura jerrquica.

Cmo reconocer una estructura jerrquica


Por ejemplo, utilice registros con varias estructuras para diferentes tipos de informacin, tales como un registro "E" para la informacin esttica del empleado y un registro "S" para la informacin sobre la nmina mensual del empleado o para grupos repetitivos de informacin (doce meses de ingresos). Tambin puede combinar estas agrupaciones de registros y, cuando se trate de datos que se repitan, puede presentar simultneamente grupos OCCURS anidados.

Gestin de grupos repetitivos y de estructuras internas


Los grupos repetitivos y las estructuras de registros internas tales como campos GROUP y OCCURS son fciles de cargar, gestionar y utilizar. Puede ignorar las columnas de datos GROUP que se visualizan como datos en bruto y no pueden utilizarse de forma lgica en la mayora de aplicaciones. Los metadatos pueden presentarse simultneamente en un conjunto de columnas normalizado durante el tiempo de carga de forma que no existan matrices durante el tiempo de ejecucin.

Seleccin de subconjuntos de columnas


Puede seleccionar un subconjunto de columnas desde una extensa CFD (COBOL File Description, Descripcin de archivo COBOL). Este proceso de filtrado redunda en que se logra un incremento del rendimiento puesto que la etapa ya no analiza ni procesa cientos de columnas, cuando en realidad, slo necesita unas pocas. Los archivos sin formato complejo tambin pueden incluir tipos de datos de herencia.

Enlaces de salida
La etapa Complex Flat File soporta varias salidas. Un enlace de salida especifica los datos que est extrayendo es decir, una secuencia de filas que se deben leer. Si utiliza la etapa Complex Flat File para procesar un extenso nmero de columnas, por ejemplo, ms de 300, utilice slo un enlace de salida en su trabajo. As mejorar sustancialmente el rendimiento de la interfaz grfica de usuario al cargar, guardar o estructurar estas columnas. El hecho de tener ms de un enlace de salida implica una secuencia de guardado o de carga cada vez que se cambian separadores. La etapa Complex Flat File no dispone de la funcin de bsqueda de referencias ni soporta los enlaces de entrada. Para obtener ms informacin acerca de los trabajos creados con la versin 1 de esta etapa, consulte la siguiente seccin.

Copyright IBM Corp. 1997, 2011

27

Trabajos existentes creados con la versin 1 de la etapa Complex Flat File


Acerca de esta tarea
Cuando abre por primera vez la etapa Complex Flat File, la cuadrcula del separador Columnas de origen est vaca para los trabajos existentes hasta que pulsa Aceptar y guarda el trabajo. La GUI genera los valores de columna de origen utilizando la lista de columnas de salida, y puede actualizar los trabajos existentes seleccionando S en la siguiente consulta:
Esta etapa se ha desarrollado con una versin anterior del plug-in CFF. Desea actualizar esta etapa?

Las columnas de origen se rellenan, y puede seleccionar y modificar columnas. Puede detener la actualizacin seleccionando No en la consulta. No puede utilizar el separador Columnas de origen y la cuadrcula permanece vaca. Los trabajos existentes se ejecutan sin alterar siempre que no guarde el trabajo.

Funcionalidad de la etapa Complex Flat File


Funcionalidad soportada
La etapa Complex Flat File soporta la funcionalidad siguiente: v Datos en bruto EBCDIC y ASCII. v Los siguientes tipos de datos de COBOL: Empaquetados (COMP-3). Delimitados (DISPLAY son signos). Carcter (DISPLAY o PIC X). Entero (COMP. Entero tambin soporta implementaciones de 1 y 3 bytes no estndares). Binario (lo mismo que COMP, pero sin signos.) Decimal (COMP-2). Flotante (COMP-1). Estructuras de formato fijas. No soporta columnas que estn separadas por delimitadores. Una clusula REDEFINES. OCCURS paralela mediante enlaces de salida separados. OCCURS anidada en el mismo formato CFD. Deben presentarse simultneamente durante el tiempo de carga (no durante el tiempo de ejecucin). OCCURS fija con ninguna clusula DEPENDING ON. Archivos sin formato complejo generados en el sistema principal de IBM. Soporte multilingstico.

v v v v v v

v La capacidad de seleccionar subconjuntos de columnas desde una CFD.

Funcionalidad no soportada
La siguiente funcionalidad no est soportada: v Formatos de archivo de byte que no son de 8 bits. v Archivos sin formato complejo generados en sistemas principales que no son de IBM (por ejemplo, Windows).

Terminologa
La lista siguiente describe los trminos utilizados en este documento:

28

Gua del desarrollador de Server Job

Trmino Descripcin CFD Formato de descripcin de archivos COBOL.

Archivo sin formato complejo Un superconjunto del archivo sin formato simple que contiene estructuras de datos complejas. Las estructuras de datos complejas soportadas por el archivo sin formato complejo son los grupos, las matrices y las redefiniciones, que se encuentran en los archivos VSAM o QSAM. (Los archivos preparados para la carga o delimitados no contienen estas estructuras complejas). Un archivo sin formato complejo tiene una estructura jerrquica implicada en su disposicin de las columnas. Los archivos sin formato complejo tambin pueden incluir tipos de datos de herencia. Importacin de DCLGen El componente IBM InfoSphere DataStage al que se importa una definicin de tabla en un archivo DCLGen que se ha exportado previamente de VS/IBM DB2. Archivo sin formato de ancho fijo Un archivo caracterizado por archivos delimitados o de longitud fija (binarios). Presentacin simultnea La conversin de archivos que contienen estructuras de datos complejas como, por ejemplo, matrices, grupos y redefiniciones, en archivos de datos que contienen registros sin relaciones estructuradas. Normalizacin La conversin de registros en formato NF2 (no de primera forma normal) que contienen datos con varios valores en una o varias filas 1NF (primera forma normal). QSAM Mtodo de acceso secuencial en cola. VSAM Mtodo de acceso de almacenamiento virtual. Este mtodo es un sistema de gestin de archivos para el sistema operativo de sistema principal de IBM MVS.

Utilizacin de la etapa Complex Flat File


Si utiliza la interfaz grfica de usuario personalizada para editar una etapa Complex Flat File, se abrir el recuadro de dilogo CFF Etapa. Este recuadro de dilogo tiene las pginas Etapa y Salida: v Etapa. Esta pgina muestra el nombre de la etapa que est editando en el campo Nombre de etapa. El separador General describe el objetivo de la etapa en el campo Descripcin. (El separador Soporte multilingstico slo aparece si se ha instalado el soporte multilingstico). Para obtener detalles, consulte Separador Soporte multilingstico.) Nota: No puede cambiar el nombre de la etapa desde este recuadro de dilogo. v Salida. Esta pgina especifica las fuentes de datos que se deben utilizar y las definiciones de columnas asociadas para cada enlace de salida.

Separador Soporte multilingstico


Puede definir una correlacin de juegos de caracteres que interprete el archivo de entrada para una etapa. Realcelo en el separador Soporte multilingstico en la pgina Etapa, que slo aparecer si ha instalado el soporte multilingstico. Si el soporte multilingstico est instalado, se selecciona la opcin Soporte multilingstico en el recuadro de lista Formato de los datos en el separador General de la pgina Salida y se habilita el separador Soporte multilingstico en la pgina Etapa.

Captulo 4. Etapas de trabajo de servidor

29

Especifique la informacin mediante el siguiente botn y los siguientes campos: v Correlacionar el nombre que debe utilizarse con la etapa. Se define la correlacin de juego de caracteres predeterminada para el proyecto o el trabajo. Puede cambiar la correlacin seleccionando un nombre de correlacin de la lista. v Utilizar parmetro de trabajo... . Especifica los valores de los parmetros para el trabajo. Utilice el formato #Param#, donde Param es el nombre del parmetro de trabajo. La serie #Param# se sustituye por el parmetro de trabajo cuando se ejecuta el trabajo. v Mostrar todas las correlaciones. Muestra una lista de todas las correlaciones transferidas con IBM InfoSphere DataStage. v Slo correlaciones cargadas. Muestra una lista de las correlaciones que estn cargadas en ese momento. Si el soporte multilingstico no est instalado, la opcin Soporte multilingstico no est disponible en el recuadro de lista Formato de los datos y el separador Soporte multilingstico de la pgina Salida est inhabilitado. El archivo de entrada se interpreta de acuerdo con la opcin que se selecciona el recuadro de lista Formato de los datos del separador General de la pgina Salida.

Definicin de un enlace de salida


Al leer datos de un origen de datos, la etapa Complex Flat File tiene un enlace de salida. Defina las propiedades de este enlace y las definiciones de columna de los datos en la pgina Salida, en el recuadro de dilogo Etapa CFF.

Acerca de la pgina Salida


La pgina Salida tiene un campo Nombre de salida, los separadores General, Columnas de origen, Seleccionar columnas, Criterios de seleccin y Columnas de destino y los botones Columnas... y Visualizar datos.... (El separador Soporte multilingstico slo aparece si se ha instalado el soporte multilingstico). Para obtener detalles, consulte Separador Soporte multilingstico en la pgina 29.) v Nombre de salida. Nombre del enlace de salida. Seleccione el enlace que desee editar en el recuadro de lista Nombre de salida. Esta lista muestra todos los enlaces de salida de una etapa Complex Flat File. v Botn Columnas.... Pulse el botn Columnas... para visualizar una breve lista de columnas en el archivo de fuente de datos. Puede seguir visualizando la lista a medida que va entrando metadatos detallados en el separador Origen Columnas. v Botn Visualizar datos... . Pulse el botn Ver datos... para iniciar el Navegador de datos. Permite ver los datos asociados con el enlace de salida.

Separador General
Este separador se visualiza de forma predeterminada. Opcionalmente, puede entrar texto para describir la finalidad del enlace de salida en el campo Descripcin. Entre la informacin correspondiente en los siguientes campos: v Va de acceso. El nombre de la va de acceso de entrada de la fuente de datos a partir del que se pueden recuperar los datos. Tambin puede pulsar el botn ... situado a la derecha del campo para examinar los directorios del sistema que hospeda la capa de motor para el origen de datos. v Formato de los datos. El formato de un archivo de entrada: EBCDIC, ASCII o NLS. Si el soporte multilingstico est habilitado, el formato de los datos se fija en Soporte multilingstico y no se podr editar. (Las correlaciones de soporte multilingstico soportan datos EBCDIC.) v Estilo del registro. El tratamiento de fin de la lnea de los registros de acuerdo con la tabla siguiente:

30

Gua del desarrollador de Server Job

Tabla 2. Tratamiento de fin de la lnea Formato de los datos ASCII o EBCDIC Estilo del registro Binario Longitud del registro Mayor que cero Comentarios La longitud del registro viene determinada por el campo Longitud del registro. Si los metadatos definen un registro que es ms largo que el campo Longitud del registro, las columnas que tengan posiciones de inicio mayores que la Longitud del registro se establecern en nulo. ASCII o EBCDIC Binario Cero La longitud del registro viene determinada por los metadatos. La longitud del registro viene determinada por el delimitador CR/LF. Si los metadatos definen un registro que es ms largo que la Longitud del registro tal y como ha determinado el CR/LF, las columnas que tengan posiciones de inicio mayores que la posicin de CR/LF se establecern en nulo. Si los metadatos definen un registro que es menor que la posicin del CR/LF, los datos despus del final del registro y antes del CR/LF (tal y como han determinado los metadatos) se descartarn. Si los datos que se estn leyendo estn en formato EBCDIC, puede generarse una coincidencia de caracteres CR/LF. stos tambin delimitan un registro.

ASCII o EBCDIC

CR/LF

Cualquier valor

Captulo 4. Etapas de trabajo de servidor

31

Tabla 2. Tratamiento de fin de la lnea (continuacin) Formato de los datos NLS Estilo del registro Binario Longitud del registro >0 Comentarios La longitud del registro viene determinada por el campo Longitud del registro. Si los metadatos definen un registro que es ms largo que el campo Longitud del registro, las columnas que tengan posiciones de inicio mayores que la Longitud del registro se establecern en espacios. NLS CR/LF Cualquier valor La longitud del registro viene determinada por el delimitador CR/LF. Si los metadatos definen un registro que es ms largo que la Longitud del registro tal y como ha determinado el CR/LF, las columnas que tengan posiciones de inicio mayores que la posicin de CR/LF se establecern en espacios. Si los metadatos definen un registro que es menor que la posicin del CR/LF, los datos despus del final del registro y antes del CR/LF (tal y como han determinado los metadatos) se descartarn. Si los datos que se estn leyendo estn en formato EBCDIC, puede generarse una coincidencia de caracteres CR/LF. stos tambin delimitan un registro. NLS Binario 0 La longitud del registro viene determinada por los metadatos.

Nota: Si el Estilo del registro se establece en CR/LF, el CR/LF no debe finalizar el ltimo registro del conjunto de datos. Si uno o varios CR/LF se encuentran al final de un conjunto de datos, se generarn registros vacos para cada CR/LF. v Verificar valor de signo en datos DECIMAL COMP-3. Si se selecciona esta opcin, la etapa comprueba si existe un valor de signo vlido en los datos definidos como COMP-3. Si el valor no es un hexadecimal "C," "F," o "D,", la etapa graba un mensaje de error en el registro de IBM InfoSphere DataStage.

32

Gua del desarrollador de Server Job

v Preservar NULL. Si se selecciona esta opcin, la etapa interpreta que el valor de cualquier columna que contenga valores nulos binarios ser un a SQL_NULL. Si no se selecciona, la etapa interpreta que el valor es cero. De forma predeterminada, no se selecciona la opcin Preservar NULL. v Descripcin. Texto opcional que describe la finalidad del enlace de salida.

Separador Columnas de origen


El separador Columnas de origen contiene la lista completa de todas las columnas. Si utiliza el separador Seleccionar Columnas, podr seleccionar columnas de esta lista para que los datos se trasladen al enlace de salida de CFF. (Tambin puede utilizar la etapa Transformer para hacerlo, pero el rendimiento ser ms lento debido a los datos de las columnas que no se utilizan.) Utilice el separador Columnas de origen para entrar los datos de columna que constituyen el archivo sin formato manualmente o puede utilizar Cargar. Nota: No utilice el separador Columnas de origen para omitir columnas del archivo de destino. Las Columnas de origen deben describir de forma precisa y completa el archivo de origen o, de lo contrario, el archivo no se analizar correctamente. En su lugar, utilice el separador Seleccionar columnas para omitir columnas.

Botn Cargar
Cargar presenta simultneamente las matrices generando nombres de columnas con nmeros que incrementan monotnicamente si se responde con S a la consulta siguiente:
Desea presentar simultneamente OCCURS en las columnas que se estn cargando?

Si entra los datos manualmente, tambin deber presentar simultneamente todas las matrices manualmente. Las columnas siguientes tienen un significado especial para la etapa Complex Flat File: v Nmero de nivel. Representa el nmero de nivel de la columna dentro de una descripcin de archivo de COBOL. v Tipo nativo. Representa el tipo de datos de COBOL. Las otras columnas de la cuadrcula son las columnas estndar para el separador Columnas. Puede editar estos campos pulsando el botn derecho del ratn en una fila de la cuadrcula y seleccionado Editar fila... . Se abrir el recuadro de dilogo Editar columna.

Recuadro de dilogo Editar metadatos de columna


Utilice el recuadro de dilogo Editar metadatos de columna para editar los metadatos de columna tal y como se describe en esta seccin. El recuadro de dilogo Editar metadatos de columna tiene un rea general que contiene campos comunes a todos los tipos de fuente de datos, adems de dos pginas que contienen campos especficos para los metadatos utilizados en trabajos de servidor e informacin especfica de fuentes de datos de COBOL.

Propiedades de metadatos
Utilice el IBM InfoSphere DataStage and QualityStage Designer para importar los metadatos de archivo sin formato complejo (CFD) en el InfoSphere DataStage. La lista siguiente define las propiedades que se capturan para metadatos de archivo sin formato complejo. Campo Descripcin Nombre de la columna Nombre de la columna.
Captulo 4. Etapas de trabajo de servidor

33

Clave Especifica si la columna es una clave. Tipo nativo Tipo de datos nativo de la columna. Utilice uno de los valores siguientes: FLOAT, DECIMAL, BINARY, DISPLAY_NUMERIC, CHARACTER, o GROUP. Para obtener detalles acerca de la utilizacin del tipo nativo GROUP para manejar fechas, consulte Separador Columnas de destino en la pgina 37. Longitud Valor numrico de la precisin. Escala Nmero de posiciones decimales. Con posibilidades de nulos Especifica si la columna puede contener valores nulos. Si se establece en S, estar sujeta a una restriccin NOT NULL. (S/No) Formato de fecha Formato de una columna de fecha. Descripcin Descripcin de una columna. Consulte los ejemplos de los valores del campo Descripcin al final de esta seccin. Nmero de nivel Nmero de nivel COBOL relativo de la columna. OCCURS Nmero de ocurrencias de la columna especificada en la clusula OCCURS de COBOL. (Consulte los ejemplos de OCCURS paralela, a la que no se da soporte, al final de esta seccin.) Uso Especifica una clusula de uso de COBOL. Utilice una de las siguientes: COMP COMP-1 COMP-2 COMP-3 DISPLAY Indicador de signo Especifica el signo. Fjelo en S si la serie de caracteres de la imagen contiene el smbolo S. De lo contrario, fjelo en U. Opcin de signo Si especifica una clusula de signo y la serie de caracteres de la imagen contiene un smbolo S, este atributo se establece en uno de los valores siguientes: L - LEADING T - TRAILING LS - LEADING SEPARATE TS - TRAILING SEPARATE Indicador de sinc. Especifica si es una clusula sincronizada de COBOL. Campo redefinido Nombre de la columna que se est redefiniendo. Depending on Nombre de la columna de dependencia. Longitud de almacenamiento Longitud de almacenamiento real en bytes de la columna. Picture Muestra una clusula Picture generada en base a los valores en Nativo Tipo, Longitud y Escala.

34

Gua del desarrollador de Server Job

Proceso de metadatos
Utilice los botones de la parte inferior del recuadro de dilogo Editar metadatos de columna para continuar aadiendo o editando columnas o guardar los cambios y cerrar el recuadro de dilogo. v Anterior y Siguiente. Visualizar los metadatos de la fila anterior o de la siguiente. v Cerrar. Cerrar el recuadro de dilogo Editar metadatos de columna. Si hay cambios pendientes para la fila actual, se le preguntar si desea guardarlos antes de cerrar la ventana. v Aplicar. Guardar los cambios en la fila actual. v Restablecer. Eliminar todos los cambios efectuados en la fila desde la ltima vez que se aplicaron los cambios. Slo aparece visible un subconjunto de estas propiedades en el separador Columnas de origen. Para ver todas las propiedades de una determinada fila, pulse con el botn derecho del ratn en una fila de la cuadrcula y seleccione Editar fila.... Si entra o modifica metadatos utilizando el editor de etapas y desea guardar una copia en el repositorio de InfoSphere DataStage para utilizarlas en otra etapa, pulse el botn Guardar.... Para cargar una definicin de tabla existente en una etapa, utilice el botn Cargar....

Gestin de OCCURS paralelas


La etapa Complex Flat File no soporta OCCURS paralelas, es decir: dos o ms clusulas OCCURS en la misma definicin de datos. Es necesario procesar estas clusulas OCCURS paralelas para separar enlaces de salida. Este ejemplo emplea una clusula PHONES OCCURS y una clusula ADDRESS OCCURS:
01 CLIENT. 03 SURNAME 03 FORENAME 03 ADDRESS 05 ADDLINE 03 POSTCODE 03 PHONES 05 TELNO PIC X(25). PIC X(25). OCCURS 4. PIC X (10). PIC X (10). OCCURS 2. PIC X(10).

El ejemplo siguiente utiliza una clusula PHONES OCCURS y una clusula ADDLINE OCCURS:
01 CLIENT. 03 SURNAME 03 FORENAME 03 ADDRESS. 05 ADDLINE 03 POSTCODE 03 PHONES 05 TELNO PIC X(25). PIC X(25). PIC X (10) OCCURS 5. PIC X (10). OCCURS 2. PIC X(10).

La interfaz grfica de usuario personalizada CFF reconoce las OCCURS paralelas y muestra el error siguiente:
Demasiadas OCCURS

No dispone de autorizacin para guardar las definiciones de columna cargadas o editadas. Para procesar OCCURS paralelas: 1. Borre el campo OCCURS utilizando el recuadro de dilogo Editar metadatos de columna. 2. Entre NONE en el campo Descripcin de las columnas que no estn siendo procesadas en este enlace. De esta manera se consigue que los datos de dichas columnas fluyan sin modificarse.
Captulo 4. Etapas de trabajo de servidor

35

3. Cree un enlace de salida separado utilizando un procedimiento similar para procesar la prxima OCCURS.

Valores del campo Descripcin


Los valores siguientes para el campo Descripcin tienen un significado especial durante el tiempo de ejecucin: v UNSIGNED_DECIMAL. Slo utilcelo con campos DECIMAL. Puede utilizar este valor con campos de decimales empaquetados para desencadenar algoritmos especiales de desempaquetamiento. v ANYSIGN_DECIMAL. Slo utilcelo con campos DECIMAL. Puede utilizar este valor con campos de decimales empaquetados para desencadenar algoritmos especiales de desempaquetamiento. v NINGUNO. Utilcelo con tipos nativos non-GROUP. NONE provoca que los datos fluyan por la etapa sin modificarla, es decir, no se realizan conversiones en los datos y se produce una salida de datos en bruto. NONE se ignorar si utiliza un formato de fecha. v OCCURS_COUNTER. Se comporta como una pseudocolumna del tipo nativo DECIMAL que no espera recibir datos en la secuencia de entrada. Primero debe insertar un campo nuevo con el tipo DECIMAL en la cuadrcula Columnas dentro de la clusula OCCURS. Tambin debe incluir la serie OCCURS_COUNTER en el campo Descripcin. Durante el tiempo de ejecucin, la etapa crea sus propios datos incrementando automticamente el contador para cada ocurrencia que se procesa. Actualmente no est soportado por el OCCURS anidado.

Columnas GROUP y OCCURS


Si selecciona una columna en un GROUP que tiene una OCCURS y no se selecciona la columna GROUP, podran visualizarse resultados incorrectos. Debe incluir la columna GROUP con OCCURS en su seleccin si elige cualquier columna en el GROUP. Nota: Slo podran seleccionarse determinados tipos de columnas GROUP. Consulte las secciones siguientes para obtener detalles.

Separador Seleccionar columnas


Utilice el separador Seleccionar columnas para elegir las columnas que se deben cargar al enlace de salida. El separador Seleccionar columnas contiene una cuadrcula que muestra las definiciones de columna para los datos que estn saliendo en el enlace seleccionado. Nota: No utilice el separador Columnas de origen con el objetivo de seleccionar columnas para el archivo de destino. Slo utilice el separador Seleccionar columnas para este propsito. La descripcin en el separador Columnas de origen debe coincidir de forma completa y precisa con el archivo de origen (consulte Separador Columnas de origen en la pgina 33). El separador Seleccionar columnas funciona de forma parecida a la etapa de origen de sistema principal Complex File, tal y como se describe a continuacin: v Columnas disponibles lista las columnas de origen visualizadas en formato jerrquico. Utiliza campos para columnas non-GROUP y carpetas para columnas GROUP. Cuando selecciona o borra cada columna, aparece una marca de seleccin en la columna de la lista. Slo puede seleccionar columnas GROUP si todas las columnas en GROUP tienen el tipo de datos CHARACTER. Si cualquier columna en GROUP tiene un tipo de datos distintos, no podr seleccionar la columna GROUP y se visualizar como tal. v Columnas seleccionadas contiene la lista de columnas que est creando utilizando las teclas de flecha. v Utilice estas teclas de flecha para mover las columnas de ac para all entre la lista Columnas disponibles y la lista Columnas seleccionadas. Utilice la flecha simple ( > ) para mover columnas resaltadas y la flecha doble ( >> ) para mover todos los elementos.

36

Gua del desarrollador de Server Job

v De forma predeterminada se seleccionan todas las columnas para la carga. Pulse Buscar para abrir un recuadro de dilogo que permite buscar una columna en concreto. v Pulse Aceptar cuando termine la seleccin para cargar las columnas seleccionadas.

Separador Criterios de seleccin


Utilice el separador Criterios de seleccin para redefinir campos extrados del archivo de entrada. Entre la informacin correspondiente en los siguientes campos: v Registro de inicio #. Nmero de registro a partir del que se inicia el proceso. v Registro de fin #. Nmero de registro a partir del que se detiene el proceso. v Campo ID. Seleccione el campo que contenga el tipo de registro del recuadro de lista. v Valor (hex). Valor del tipo de registro. Este valor se convierte en el Estilo de registro antes de la comparacin, por ejemplo, ASCII o EBCDIC. Slo se envan los registros que contienen este valor al enlace de salida. No se soportan los rangos de valores. Si el valor est precedido por el carcter &, se tratar como un valor hexadecimal y se comparar sin ninguna conversin.

Ejemplo redefinido
La etapa Complex Flat File soporta la redefinicin de cualquier parte del archivo de origen. Lo hace al restableciendo la posicin de inicio de un campo cuyos metadatos redefinen otro campo. Por ejemplo, Field-2 redefine Field-1 y as sucesivamente.
Entrada: 01 Ejemplo-Registro. 03 Field-1 Pic X(24). 03 Field-2 redefine Field-1. 05 Field-2a Pic X(8). 05 Field-2b Pic X(8). 05 Field-2c Pic X(8). 03 Field-3 Pic X(24). 03 Field-3 redefine Field-3. 05 Field-4a Pic X(8). 05 Field-4b Pic X(8). 05 Field-4c Pic X(8). 03 Field-5 redefine Field-1. 05 Field-5a Pic X(8). 05 Field-5b Pic X(8). 05 Field-5c Pic X(8). Datos de entrada: 2a2a2a2a2b2b2b2b2c2c2c2c4a4a4a4a4b4b4b4b4c4c4c4c Orden de los campos de salida: Field-2a Field-2b Field-2c Field-4a Field-4b Field-4c Field-5a Field-5b Field-5c Datos de salida: 2a2a2a2a2b2b2b2b2c2c2c2c4a4a4a4a4b4b4b4b4c4c4c4c2a2a2a2a2b2b2b2b2c2c2c2c

Separador Columnas de destino


El separador Columnas de destino de la pgina Salida contiene la lista de columnas que se ha creado utilizando el separador Seleccionar columnas. Las columnas aparecen en gris y no son editables. Debe utilizar el separador Seleccionar columnas para elegir las columnas que desea cargar al enlace de salida.

Captulo 4. Etapas de trabajo de servidor

37

Consideraciones sobre la fecha


En muchos casos, los archivos de COBOL definen fechas como un campo de caracteres. Por ejemplo:
05 Application-Date pic 99999999.

Pulse el separador Origen Columnas en la pgina Salida para entrar o cargar definiciones de columna para sus datos. En este caso, defina el campo Tipo nativo para Application-Date (aplicacin-fecha) como CARCTER. Seleccione un formato adecuado en el campo Formato de fecha de la ventana Editar metadatos de columna, en este caso, CCYYMMDD. Para generar una fecha de IBM InfoSphere DataStage en la columna del enlace de salida, los datos de entrada y el campo Formato de fecha deben utilizar el mismo formato. Por ejemplo, los datos de entrada con formato "25/12/2000" deben utilizar el formato DD/MM/CCYY en el campo Formato de fecha. De lo contrario, se genera una fecha con un valor nulo y aparece un aviso sobre una conversin de fecha incorrecta en el registro de InfoSphere DataStage.

Etapas Folder
Las etapas Folder se utilizan para leer o grabar datos como archivos en un directorio ubicado en el servidor de IBM InfoSphere DataStage.

Utilizacin de etapas Folder


Las etapas Folder pueden leer varios archivos de un solo directorio y proporcionar los archivos al trabajo como filas en un enlace de salida. Las etapas Folder tambin pueden grabar filas de datos como archivos en un directorio. Las filas llegan a la etapa en un enlace de entrada. Nota: El comportamiento de la etapa Folder cuando lee carpetas que contienen otras carpetas no est definido. En un entorno de soporte multilingstico, el usuario que ejecuta el trabajo debe tener permiso de grabacin en la carpeta para que la informacin de correlacin de soporte multilingstico pueda configurarse correctamente. Cuando edita una etapa Folder, aparece el recuadro de dilogo Etapa Folder. Este recuadro de dilogo tiene tres pginas: v Etapa. El separador General muestra el nombre de la etapa que est editando, el tipo de etapa y una descripcin. El separador Propiedades contiene las propiedades que definen la operacin de la etapa. v Entradas. El separador Columnas muestra las definiciones de columna para los datos que llegan al enlace de entrada. El directorio en el que la etapa graba los archivos se define en la propiedad Nombre de va de acceso de la carpeta en el separador Propiedades de la etapa. v Salidas. El separador Columnas muestra las definiciones de columna para los datos que salen en el enlace de salida. El separador Propiedades controla la operacin del enlace. El directorio en el que la etapa lee los archivos se define en la propiedad Nombre de va de acceso de la carpeta en el separador Propiedades de la etapa.

Definicin de correlaciones de juegos de caracteres


Puede definir una correlacin de juegos de caracteres para una etapa Folder mediante el separador NLS en el recuadro dilogo Etapa Folder. La correlacin de juegos de caracteres predeterminada (definida para el proyecto o el trabajo) se puede cambiar seleccionando un nombre de correlacin de la lista. El separador tambin contiene los siguientes campos:

38

Gua del desarrollador de Server Job

v Mostrar todas las correlaciones. Lista todas las correlaciones suministradas mediante IBM InfoSphere DataStage. Las correlaciones no se pueden utilizar a menos que se hayan cargado utilizando el cliente del Administrador. v Slo correlaciones cargadas. Muestra las correlaciones que se han cargado y que estn preparadas para ser utilizadas. v Utilizar parmetro de trabajo... . Permite especificar una correlacin de juegos de caracteres como un parmetro del trabajo que contiene la etapa. Si el parmetro todava no se ha definido, el sistema solicitar su definicin desde el recuadro de dilogo Propiedades del trabajo.

Definicin de los datos de entrada de la etapa Folder


La etapa Folder slo tiene datos de entrada cuando se utiliza para grabar archivos en un directorio. En este caso, el directorio en el que se graban se define en el separador Propiedades de la pgina Etapa. El separador Propiedades de la pgina Entradas define propiedades para el enlace de entrada. Las propiedades son las siguientes: v Conservar CRLF. Cuando Conservar CRLF se establece en S, las marcas de campo no se convierten en nuevas lneas al grabarse. Se establece en S de forma predeterminada. El separador Columnas define los datos que llegan al enlace que se van a grabar en archivo en el directorio. La primera columna del separador Columnas debe definirse como una clave, y proporciona el nombre del archivo. Las restantes columnas se graban en el archivo denominado, separando cada columna con una lnea nueva. Los datos que se van a grabar en un directorio se proporcionan normalmente en una sola columna. Por ejemplo, la cuadrcula de columnas ser parecida a la siguiente:
Nombre de la columna Nombre de archivo Registro Con posibilidades de nulos No No

Clave U

Tipo de SQL VarChar LongVarChar

Longitud 255 999999

Escala

Definicin de los datos de salida de la etapa Folder


El comportamiento del enlace de salida est controlado por las propiedades de salida en el separador Propiedades de Salidas. Las propiedades son las siguientes: v Orden de clasificacin. Puede elegir Ascendente, Descendente o Ninguno. Especifica el orden en el que se leen los archivos en el directorio. v Asterisco. Permite la utilizacin sencilla de comodines en los nombres de los archivos en el directorio. Cualquier aparicin de * (asterisco) o ... (tres puntos) se trata como una instruccin para que coincida con cualquier carcter o con ninguno. v Conservar CRLF. Cuando Conservar CRLF se establece en S, las nuevas lneas no se convierten en marcas de campo al leerse. Se establece en S de forma predeterminada. v Calificado al completo. Establezca este valor en S para que se escriba el nombre completo de va de acceso de cada archivo en la columna de clave, en lugar de slo el nombre de archivo. El separador Columnas define un mximo de dos columnas. La primera columna se debe marcar como la clave y recibe el nombre de archivo. La segunda columna, si existe, recibe el contenido del archivo. Puede cargar estas definiciones de columna de la definicin de tabla predeterminada proporcionada para la

Captulo 4. Etapas de trabajo de servidor

39

etapa. Pulse Cargar y seleccione la definicin de tabla Folder que se encuentra en la carpeta Table Definitions\Built-in\Examples del rbol de repositorios.

Etapas Hashed File


Las etapas Hashed File representan un archivo hash, es decir, un archivo que utiliza un algoritmo de hash para distribuir registros en uno o ms grupos en el disco. Utilice una etapa Hashed File para acceder a los archivos de UniVerse. El motor de servidor puede alojar archivos de UniVerse localmente. Puede utilizar un archivo hash como archivo intermedio en un trabajo y aprovechar las ventajas del alojamiento local del motor de servidor. Consulte IBM InfoSphere DataStage and QualityStage Connectivity Guide for IBM UniVerse and UniData para obtener ms informacin sobre cmo utilizar las etapas Hashed File para acceder a los archivos de UniVerse.

Utilizacin de la etapa Hashed File


Puede utilizar una etapa Hashed File para extraer o grabar datos o bien para que sirva de archivo intermedio en un trabajo. El rol principal de una etapa Hashed File es el de una tabla de referencia basada en un solo campo clave. Cada etapa Hashed File puede tener una cantidad distinta de entradas o salidas. Cuando edita una etapa Hashed File, aparece el recuadro de dilogo Etapa Hashed File. Este recuadro de dilogo puede tener hasta tres pginas (en funcin de si existen entradas o salidas de la etapa): v Etapa. Muestra el nombre de la etapa que se est editando. Esta pestaa tiene un separador General, donde puede escribir texto para describir la finalidad de la etapa en el campo Descripcin y especificar dnde estn los archivos de datos pulsando uno de los siguientes botones de opcin: Utilizar nombre de cuenta. Si selecciona esta opcin, debe elegir el nombre de la cuenta en la lista Nombre de cuenta. Esta lista contiene todas las cuentas definidas en la carpeta Definiciones de tablas > Con hash en el repositorio. Si la cuenta que desea no est en la lista, es conveniente definir una definicin de tabla. O buen, puede especificar un nombre de cuenta o utilizar un parmetro de trabajo. Para obtener ms informacin sobre cmo crear una definicin de tabla, o cmo definir y utilizar parmetros de trabajo, consulte el manual IBM InfoSphere DataStage and QualityStage Designer Client Guide. Utilizar va de acceso de directorio. Si selecciona esta opcin, debe especificar una va de acceso de directorio que contenga la cuenta de UV. El directorio debe ser una cuenta de UniVerse y se utiliza para las cuentas de UniVerse que no aparecen en el archivo UV.ACCOUNT. Si el motor de InfoSphere Information Server aloja localmente el archivo hash, debe especificar el directorio del proyecto de IBM InfoSphere DataStage como la va de acceso del directorio, por ejemplo, C:\IBM\InformationServer\Server\Projects\Dstage. El directorio se especifica en el campo Va de acceso de directorio. Puede especificar la va de acceso directamente, pulsar Examinar... para buscar un directorio adecuado en el sistema o utilizar un parmetro de trabajo. Valor nulo de SQL. Determina qu carcter representa el valor nulo de SQL en el archivo hash correspondiente a esta etapa. Si el sistema utiliza el smbolo del Euro, seleccione la opcin Especial (permitir Euro) en la lista. Seleccione Deteccin automtica para que InfoSphere DataStage determine que representa el nulo SQL. Compatibilidad de etapas de UniVerse. Marque este recuadro de seleccin para asegurarse de que las conversiones de trabajos funcionarn correctamente. Con esta opcin seleccionada, la fecha o la hora se representarn en formato ISO (segn el tipo ampliado) y se escalarn los nmeros de acuerdo con los metadatos. (El programa de utilidad de conversin de trabajos es una herramienta autnoma especial; no est disponible en el cliente del Diseador.) v Entradas. Esta pgina slo se muestra si dispone de un enlace de entrada de esta pgina. Especifica el archivo de datos que se debe utilizar y las definiciones de columnas asociadas para cada enlace de entrada de datos. Esta pgina tambin especifica cmo se graban datos en el archivo de datos.

40

Gua del desarrollador de Server Job

v Salidas. Esta pgina slo se muestra si dispone de un enlace de salida de esta etapa. Especifica el archivo de datos que se debe utilizar y las definiciones de columnas asociadas a cada enlace de salida de datos. Pulse Aceptar para cerrar este recuadro de dilogo. Los cambios se guardan cuando se guarda el trabajo. Si una etapa Hashed File hace referencia a un archivo hash que no existe, utilice la caracterstica Trabajo de validacin de Director antes de ejecutar el trabajo y InfoSphere DataStage lo crear automticamente. Para validar un trabajo, elija Trabajo > Validar en el cliente del Director. Aparecer el dilogo Opciones de ejecucin del trabajo. Pulse Validar. Para obtener ms informacin sobre cmo validar un trabajo y establecer las opciones de trabajo, consulte IBM InfoSphere DataStage and QualityStage Director Client Guide.

Definicin de datos de entrada de Hashed File


Al grabar datos en un archivo hash, la etapa Hashed File dispone de un enlace de entrada. Las propiedades de este enlace y las definiciones de columnas de los datos se definen en la pgina Entradas del recuadro de dilogo Etapa Hashed File. La pgina Entradas presenta el campo y los dos separadores siguientes: v Nombre de entrada. Nombre del enlace de entrada. Seleccione el enlace que desee editar desde la lista Nombre de entrada. Esta lista muestra todos los enlaces de entrada con la etapa Hashed File. v General. Se visualiza de forma predeterminada. Contiene los campos y opciones siguientes: Nombre de archivo. El nombre del archivo en el que se graban los datos. Puede utilizar un parmetro de trabajo para representar el archivo creado en tiempo de ejecucin o elegir el archivo de la lista Nombre de archivo. Esta lista contiene todos los archivos definidos en la carpeta Definiciones de tabla > Con hash Nombre de cuenta del repositorio, donde Nombre de cuenta es el nombre de la cuenta elegida en la pgina Etapa. De forma predeterminada, el nombre del enlace de entrada se utiliza como nombre de archivo. Si el archivo que desea no est en la lista, es conveniente definir una definicin de tabla. Borrar archivo antes de grabar. Si selecciona este recuadro, el archivo existente se borra, y se graban registros de datos nuevos en el archivo vaco. Este recuadro de seleccin est deseleccionado de forma predeterminada. Hacer copia de seguridad de archivo existente. Si selecciona este recuadro, se realiza una copia de seguridad del archivo existente antes de grabar los registros de datos nuevos en el archivo. La copia de seguridad se puede utilizar para restablecer el archivo si un trabajo se detiene o termina anormalmente en el tiempo de ejecucin. Este recuadro de seleccin est deseleccionado de forma predeterminada. Permitir memoria cach de grabacin de la etapa. Seleccione este recuadro de seleccin para especificar que todos los registros deben almacenarse en la memoria cach en lugar de grabarse inmediatamente en el archivo hash. No lo seleccione si el trabajo graba y lee en el mismo archivo hash en la misma secuencia de ejecucin, por ejemplo, cuando una etapa Transformer comprueba si ya existe un registro para determinar la operacin necesaria. (Si tiene habilitado el almacenamiento en memoria cach en el servidor, los atributos de memoria cach con los que se ha creado el archivo alterarn temporalmente la memoria cach a nivel de etapa). Crear archivo. Seleccione este recuadro de seleccin para especificar que la etapa crear el archivo hash en el que grabar. Pulse Opciones para abrir el recuadro de dilogo Opciones de creacin de archivo para especificar los detalles sobre cmo se crea el archivo (consulte Opciones de creacin de archivo en la pgina 42). Descripcin. Contiene una descripcin opcional del enlace de entrada. v Columnas. Contiene las definiciones de columnas para los datos grabados en el archivo. Nota: Debe utilizar los recuadros de seleccin Clave para identificar las columnas de claves. De lo contrario, se toma la primera definicin de columna como campo de clave del archivo hash. Las
Captulo 4. Etapas de trabajo de servidor

41

restantes columnas dictan el orden en el que se grabarn los datos en el archivo hash. No reorganice las definiciones de columnas de la cuadrcula a menos que est seguro de que conoce cules sern las consecuencias de su accin. Pulse Ver datos... para abrir el Navegador de datos. Esto le permite examinar los datos asociados al enlace de entrada. Para obtener una descripcin del Navegador de datos, consulte el manual IBM InfoSphere DataStage and QualityStage Designer Client Guide.

Opciones de creacin de archivo


Si elige crear el archivo hash en el que desea grabar, el recuadro de dilogo Opciones de creacin de archivo permite especificar diversas opciones sobre cmo se crea el archivo. El recuadro de dilogo contiene los campos siguientes: v Tipo de archivo. El tipo de archivo seleccionado determina qu otras opciones estn disponibles en el recuadro de dilogo. El valor predeterminado es Type30(Dynamic). v Mdulo mnimo. Slo visible para tipos de archivo Type30(Dynamic). Especifica el mdulo mnimo de archivo dinmico en el rango entre 1 y 999999. El valor predeterminado es 1. v Tamao del grupo. Slo visible para tipos de archivo Type30(Dynamic). Especifica el tamao del grupo dinmico. Seleccione 1 para seleccionar un tamao de grupo de 2048 bytes o bien 2 para seleccionar un tamao de grupo de 4096 bytes. El valor predeterminado es 1. v Carga partida. Slo visible para tipos de archivo Type30(Dynamic). Especifica el particionamiento del archivo dinmico como un porcentaje entre 1 y 99. El valor predeterminado es 80. v Carga con fusin. Slo visible para tipos de archivo Type30(Dynamic). Especifica la carga con fusin del archivo dinmico como un porcentaje en el rango entre 1 y 99. El valor predeterminado es 50. v Registro grande. Slo visible para tipos de archivo Type30(Dynamic). Especifica el valor de registro grande en bytes en el rango entre 1 y 999999. El valor predeterminado es 1628. v Algoritmo Hash. Slo visible para tipos de archivo Type30(Dynamic). Especifica el algoritmo de dispersin (hash) de archivos dinmico. Seleccione entre GENERAL o SEQ.NUM. El valor predeterminado es GENERAL. v Tamao de registro. Slo visible para tipos de archivo Type30(Dynamic). Especifica el tamao de registro en el rango entre 1 y 999999. v Mdulo. Slo es visible para tipos de archivo hash. Especifica el mdulo del archivo hash en el rango entre 1 y 999999. El valor predeterminado es 1. v Separacin. Slo es visible para tipos de archivo hash. Especifica la separacin del archivo hash en el rango entre 1 y 999999. El valor predeterminado es 2. v Atributos de memoria cach. Si tiene habilitada la memoria cach del servidor, esta opcin permite elegir los atributos de memoria cach para el archivo que est creando. Estos atributos permanecern con el archivo siempre que se utilice posteriormente. NINGUNO significa que no se realiza el almacenamiento en memoria cach. GRABACIN DIFERIDA es el mtodo ms rpido, pero la integridad de los archivos se puede perder si se cuelga el sistema. GRABACIN INMEDIATA es ms lento, pero ms seguro por lo que respecta a la integridad. v Espacio mnimo. Slo visible para tipos de archivo Type30(Dynamic). Seleccione esta opcin para especificar que se ajusten algunas de las otras opciones para optimizar el tamao de archivo mnimo. v Suprimir el archivo antes de la creacin. Seleccione este recuadro de seleccin para especificar que cualquier archivo existente que tenga el mismo nombre se suprimir antes de que se cree uno nuevo.

Definicin de datos de salida de Hashed File


Al extraer datos de un archivo hash, la etapa Hashed File dispone de un enlace de salida. Las propiedades de este enlace y las definiciones de columnas de los datos se definen en la pgina Salidas del recuadro de dilogo Etapa Hashed File.

42

Gua del desarrollador de Server Job

La pgina Salidas presenta los dos campos y los tres separadores siguientes: v Nombre de salida. Nombre del enlace de salida. Seleccione el enlace que desee editar desde la lista Nombre de salida. Esta lista muestra todos los enlaces de salida de una etapa Hashed File. v Normalizar. Esta lista permite normalizar (o desanidar) datos. Se puede normalizar una asociacin o una sola columna de varios valores sin asociar. La lista Normalizar slo est habilitada para enlaces de salida sin referencia, donde se han definido metadatos que contienen campos de varios valores. v General. Se visualiza de forma predeterminada. Contiene los campos y opciones siguientes: Nombre de archivo. El nombre del archivo del que se leen los datos. Puede utilizar un parmetro de trabajo para representar el archivo creado en tiempo de ejecucin o elegir el archivo de la lista Nombre de archivo. Esta lista contiene todos los archivos definidos en la carpeta Definiciones de tabla > Con hash Nombre de cuenta del repositorio, donde Nombre de cuenta es el nombre de la cuenta elegida en la pgina Etapa. Si el archivo que desea no est en la lista, es conveniente definir una definicin de tabla. Lectura por registros . Seleccione esta opcin para forzar la lectura del archivo registro a registro. Es ms lento, pero es necesario si desea leer y grabar el archivo hash a la vez. Si especifica una sentencia Select en el separador Seleccin, el archivo se leer por registros igualmente, y este recuadro de seleccin estar seleccionado pero sombreado. Precargar archivo en memoria. Puede utilizar estas opciones para mejorar el rendimiento si el enlace de salida es una entrada de referencia a una etapa Transformer. Si selecciona Habilitado, el archivo hash se lee en la memoria cuando se ejecuta el trabajo (de forma predeterminada, est seleccionado Inhabilitado. Las dos opciones restantes estn especialmente indicadas para los especialistas y se utilizan en aquellas situaciones en las que es necesario modificar una tabla de bsqueda mientras se ejecuta un trabajo. Si se selecciona Habilitado, bloquear para actualizaciones, el archivo hash se lee en la memoria cuando se ejecute el trabajo. Si no se encuentra una bsqueda en la memoria, el trabajo buscar en el archivo que hay en el disco. Si la bsqueda sigue sin encontrarse, se aplicar un bloqueo de actualizaciones sabiendo que el trabajo grabar posteriormente el registro en el archivo hash. La operacin de Inhabilitado, bloquear para actualizaciones es similar, a excepcin de que el archivo hash no se lee en la memoria. Descripcin. Contiene una descripcin opcional del enlace de salida. v Columnas. Contiene las definiciones de columnas de los datos en el enlace de salida elegido. Debe tener en cuenta lo siguiente cuando extraiga datos de un archivo hash: Los campos de claves deben identificarse seleccionando los recuadros Clave. (Si no lo hace, se le avisar de que la primera columna se tratar como la clave, lo que puede generar resultados no deseados). De forma predeterminada, las otras columnas se ordenan de acuerdo con la posicin en el archivo. Tambin puede utilizar la etapa Hashed File para reorganizar las columnas en el orden en el que se leen. Para ello, especifique el orden de columna en el campo Posicin. Las columnas se grabarn en el enlace de salida en dicho orden, aunque mantengan el mismo nombre de columna. Si utiliza esta caracterstica, deber identificar las columnas de clave estableciendo su campo Posicin en 0. No reorganice las definiciones de columnas de la cuadrcula si no est seguro de cules sern las consecuencias de su accin. Tenga especial cuidado cuando utilice el campo Posicin para reorganizar las columnas y guarde la definicin como una definicin de tabla en el repositorio para su reutilizacin posterior. En concreto, si utiliza esta definicin de columna para grabar en el mismo archivo hash, reorganizar el propio archivo. Puede generar un registro completo como una sola columna, si es necesario. Para ello, inserte un valor -1 en el campo Posicin de la definicin de columna del campo del registro. (El campo Posicin de la columna de clave debe ser 0.) v Seleccin. Contiene clusulas SELECT opcionales para la extraccin condicional de datos de un archivo. Este separador slo est disponible si ha especificado el archivo hash por nombre de cuenta, en lugar de por va de acceso del directorio, en la pgina Etapa.

Captulo 4. Etapas de trabajo de servidor

43

Pulse Ver datos... para abrir el Navegador de datos. Esto le permitir ver los datos asociados con el enlace de salida. Si tiene previsto leer y grabar en un archivo hash al mismo tiempo, debe configurar una seleccin en el separador Seleccin, o debe seleccionar el recuadro de seleccin Lectura por registros en el separador General. Esto garantiza que el archivo se lea en registros en lugar de en grupos y que funcionen los bloqueos de registros. No obstante, tenga en cuenta que esta modalidad de operacin es mucho ms lenta y slo debe utilizarse si hay una clara necesidad de leer y grabar el mismo archivo al mismo tiempo.

Utilizacin del smbolo de euro en los sistemas sin soporte multilingstico


Si desea incluir el smbolo del euro en los archivos hash en los sistemas sin soporte multilingstico, deber realizar varios pasos para dar soporte al smbolo. Los pasos a realizar dependen de en qu tipo de sistema est ejecutando el servidor de IBM InfoSphere DataStage.

Sistemas UNIX con la pgina de cdigos ISO 8859-15


Acerca de esta tarea
Para dar soporte al smbolo de euro en este sistema, debe editar el archivo msg.txt en el directorio de inicio de IBM InfoSphere DataStage, tal como se muestra a continuacin: v En la lnea LOC0016, sustituya el smbolo $ por el smbolo de euro (puede generar un smbolo de euro utilizando un teclado que lo genere, o utilizar el mandato BASIC char(128) o char(164). v En la lnea LOC0015, asegrese de que se haya establecido el separador decimal correcto. v En la lnea LOC0014, asegrese de que se haya establecido el separador de millares correcto.

Sistemas Windows y sistemas UNIX con la pgina de cdigos Windows


En estos sistemas, el cdigo que representa el smbolo de euro puede entrar en conflicto con la representacin de nulo de SQL de los archivos hash. Para solucionar este problema, deben realizarse varios pasos.

Acerca de esta tarea


v Si el sistema no necesitar nunca que el smbolo de euro aparezca de forma aislada en una columna de un archivo hash, lo nico que debe hacer es editar el archivo msg.txt en el directorio de inicio de IBM InfoSphere DataStage, tal como se muestra a continuacin: En la lnea LOC0016, sustituya el smbolo $ por el smbolo de euro (puede generar un smbolo de euro utilizando un teclado que lo genere, o utilizar el mandato BASIC char(128) o char(164). En la lnea LOC0015, asegrese de que se haya establecido el separador decimal correcto. En la lnea LOC0014, asegrese de que se haya establecido el separador de millares correcto. v Si el sistema requiere utilizar el smbolo de euro de forma aislada, deber elegir otro carcter para representar el nulo de SQL. Esta accin se realiza en el separador General de la pgina Etapa del archivo hash. Seleccione una de las opciones siguientes en la lista Valor nulo de SQL: Especial (permitir Euro). Esta opcin establece el nulo de SQL en 0x19. Deteccin automtica. Esta opcin detecta si el euro es el smbolo de la moneda local y, en caso afirmativo, establece el nulo de SQL en 0x19.

Etapas Sequential File


Las etapas Sequential File se utilizan para extraer datos de, o grabar datos en, un archivo de texto. El archivo de texto se puede crear o puede existir en cualquier unidad que sea local o que est correlacionada con el servidor. Cada etapa Sequential File puede tener una cantidad distinta de entradas o salidas.

44

Gua del desarrollador de Server Job

Utilizacin de la etapa Sequential File


Cuando edita una etapa Sequential File, aparece el recuadro de dilogo Etapa Sequential File. Este recuadro de dilogo puede tener hasta tres pginas (en funcin de si existen entradas o salidas de la etapa): v Etapa. Muestra el nombre de la etapa que se est editando. El separador General tambin permite especificar opciones de finalizacin de lnea, una descripcin opcional de la etapa y si la etapa utiliza conductos con nombre o mandatos de filtro. Las opciones de finalizacin de lnea permiten establecer el tipo de terminador de lnea que se utiliza en la etapa Sequential File. De forma predeterminada, la finalizacin de lnea coincide con el tipo utilizado en el servidor IBM InfoSphere DataStage. Para cambiar el valor, elija Estilo Unix (LF), Estilo DOS (CR LF) o Ninguno. Seleccione el recuadro de seleccin La etapa utiliza conductos con nombre si desea utilizar los recursos de los conductos con nombre. Estos recursos permiten dividir un trabajo grande en diversos trabajos ms pequeos. Se recomienda hacerlo si hay un elevado grado de paralelismo en el diseo, ya que aumenta el rendimiento y permite a varios desarrolladores trabajar en el diseo al mismo tiempo. Cuando este recuadro de seleccin est seleccionado, todas las entradas y salidas de la etapa utilizan conductos con nombre. Puede ver algunos ejemplos de cmo utilizar los recursos de conducto con nombre en la ayuda del desarrollador de InfoSphere DataStage. Seleccione La etapa utiliza mandatos de filtro si desea especificar un mandato de filtro para procesar los datos en los enlaces de entrada o de salida. En el separador General de la pgina Entradas o Salidas se proporcionan detalles del mandato en cuestin (consulte Definicin de datos de entrada de Sequential File en la pgina 46 y Definicin de datos de salida de Sequential File en la pgina 48). Las opciones La etapa utiliza conductos con nombre y La etapa utiliza mandatos de filtro son mutuamente exclusivas. Si el soporte multilingstico est habilitado, el separador Soporte multilingstico permite definir una correlacin de juegos de caracteres y valores Unicode para la etapa. Para obtener ms informacin, consulte Definicin de correlaciones de juegos de caracteres. v Entradas. Contiene informacin sobre los formatos de archivo y las definiciones de columna para cada enlace de entrada de datos. Esta pgina slo se muestra si dispone de un enlace de entrada de esta pgina. v Salidas. Contiene informacin sobre el formato de archivo y las definiciones de columna para los enlaces de salida de datos. Esta pgina solamente aparece si dispone de un enlace de salida de esta etapa. Pulse Aceptar para cerrar este recuadro de dilogo. Los cambios se guardan cuando se guarda el trabajo.

Definicin de correlaciones de juegos de caracteres


Puede definir una correlacin de juegos de caracteres para una etapa Sequential File mediante el separador NLS en el recuadro dilogo Etapa Sequential File. La correlacin de juegos de caracteres predeterminada (definida para el proyecto o el trabajo) se puede cambiar seleccionando un nombre de correlacin de la lista. El separador tambin contiene los siguientes campos: v Mostrar todas las correlaciones. Elija este campo para mostrar todas las correlaciones proporcionadas con IBM InfoSphere DataStage en la lista. Las correlaciones no se pueden utilizar a menos que se hayan cargado utilizando el cliente del Administrador. v Slo correlaciones cargadas. Muestra las correlaciones que se han cargado y que estn preparadas para ser utilizadas. v Utilizar parmetro de trabajo... . Permite especificar una correlacin de juegos de caracteres como un parmetro del trabajo que contiene la etapa. Si el parmetro todava no se ha definido, el sistema solicitar su definicin desde el recuadro de dilogo Propiedades del trabajo.
Captulo 4. Etapas de trabajo de servidor

45

v Utilizar correlacin de UNICODE. Si selecciona este campo, la correlacin del juegos de caracteres se altera temporalmente y todos los datos se leen y se graban en formato Unicode con dos bytes por carcter. Si se selecciona Intercambio de bytes, los datos se leen o se graban con el byte de orden inferior primero. Por ejemplo, 0X0041 (es decir, "A") se graba como los bytes 0X41,0X00. De lo contrario, se graba como 0X00,0X41. Si se selecciona El primer carcter es la marca de orden de bytes, la etapa lee o graba la secuencia 0XFE,0XFF, si hay intercambio de bytes, o 0XFF,0XFE si no hay intercambio de bytes.

Definicin de datos de entrada de Sequential File


Al grabar datos en un archivo secuencial, la etapa Sequential File dispone de un enlace de entrada. Las propiedades de este enlace y las definiciones de columnas de los datos se definen en la pgina Entradas del recuadro de dilogo Etapa Sequential File. La pgina Entradas contiene el campo y los tres separadores siguientes: v Nombre de entrada. Nombre del enlace de entrada. Seleccione el enlace que desee editar desde la lista Nombre de entrada. Esta lista muestra todos los enlaces de entrada con la etapa Sequential File. v General. Se visualiza de forma predeterminada. Contiene los siguientes parmetros: Nombre de archivo. El nombre de va de acceso del archivo en el que se graban los datos. Puede especificar un parmetro de trabajo que represente el archivo creado en tiempo de ejecucin. Para obtener ms informacin sobre cmo definir parmetros de trabajo, consulte el manual IBM InfoSphere DataStage and QualityStage Designer Client Guide. Tambin se puede localizar el archivo. Si no especifica ninguno, el nombre de archivo tomar como valor predeterminado el nombre del enlace. Mandato de filtro. Aqu puede especificar un programa de filtro que procese los datos antes de que se graben en el archivo. Por ejemplo, este parmetro se puede utilizar para especificar un programa zip para comprimir los datos. Puede escribir el nombre del programa de filtro, o examinar para buscarlo, y especificar los argumentos de lnea de mandatos que necesite en el recuadro de texto. Este recuadro de texto slo estar habilitado si se ha seleccionado el recuadro de seleccin La etapa utiliza mandatos de filtro en el separador General de la pgina Etapa (consulte Utilizacin de la etapa Sequential File en la pgina 45). Tenga en cuenta que si se especifica un mandato de filtro, no se podrn examinar los datos, por lo que el botn Ver datos estar inhabilitado. Descripcin. Contiene una descripcin opcional del enlace de entrada. El separador General tambin contiene opciones que determinan cmo se graban los datos en el archivo. Se encuentran debajo del rea Accin de actualizacin: Sobrescribir archivo existente. Esta opcin es la predeterminada. Si se selecciona esta opcin, el archivo existente se trunca y los nuevos registros de datos se graban en un archivo vaco. Anexar a archivo existente. Si selecciona esta opcin, los registros de datos se anexan al final del archivo existente. Hacer copia de seguridad de archivo existente. Si selecciona este recuadro de seleccin, se realiza una copia de seguridad del archivo existente. Los nuevos registros de datos se graban segn decida anexar o sobrescribir el archivo existente. Nota: La copia de seguridad se puede utilizar para restablecer el archivo si un trabajo se detiene o termina anormalmente en el tiempo de ejecucin. Consulte IBM InfoSphere DataStage and QualityStage Designer Client Guide para obtener ms informacin. v Formato. Contiene parmetros que determinan el formato de los datos del archivo. Puede haber hasta cuatro recuadros de seleccin:

46

Gua del desarrollador de Server Job

Columnas de anchura fija. Si selecciona este recuadro de seleccin, los datos se graban en el archivo en columnas de anchura fija. La anchura de cada columna se especifica mediante el tamao de visualizacin de SQL (establecido en la columna Visualizacin de la cuadrcula Columnas). De forma predeterminada, esta opcin est borrada. La primera lnea es nombres de columnas. Seleccione este recuadro de seleccin si la primera fila de datos del archivo contiene nombres de columna. Esta opcin est sin marcar de forma predeterminada; es decir, la primera fila del archivo contiene datos. Omitir ltima lnea nueva. Marque este recuadro de seleccin si desea eliminar el ltimo carcter de nueva lnea del archivo. Esta opcin est sin marcar de forma predeterminada; es decir, el carcter de lnea nueva no se elimina. Desechar despus de cada fila. Este parmetro slo aparece si ha seleccionado La etapa utiliza conductos con nombre en la pgina Etapa. Si selecciona este recuadro de seleccin, los datos se pasan entre el lector y el grabador del conducto registro por registro. Puede haber hasta siete campos en el separador Formato: Delimitador. Slo se activa si no ha especificado columnas de anchura fija. Contiene el delimitador que separa los campos de datos en el archivo. De forma predeterminada, este campo contiene una coma. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el delimitador. Carcter de cita. Slo se activa si no ha especificado columnas de anchura fija. Contiene el carcter utilizado para incluir series. De forma predeterminada, este campo contiene un carcter de comillas dobles. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el carcter de cita. Espacios entre columnas. Este campo slo se activa cuando selecciona el recuadro de seleccin Columnas de anchura fija. Contiene un nmero para representar el nmero de espacios utilizado entre columnas. Serie NULL predeterminada. Contiene los caracteres predeterminados que se graban en el archivo cuando una columna contiene un valor nulo de SQL (que puede ser sobrescrito para una definicin de columna individual en el separador Columnas). Relleno predeterminado. Contiene el carcter utilizado para rellenar las columnas ausentes. Es # de forma predeterminada, pero puede establecerse en otro carcter para aplicarlo a todas las columnas o puede alterarse temporalmente para definiciones de columnas individuales en el separador Columnas. Los campos siguientes slo aparecen si ha seleccionado La etapa utiliza conductos con nombre en la pgina Etapa: Esperar que transcurra el tiempo de espera del lector. Especifica cunto tiempo esperar la etapa una conexin durante la lectura de un conducto antes de que se exceda el tiempo de espera. Los valores recomendados son de 30 a 600 segundos. Si la etapa supera el tiempo de espera , se emitir un error y el trabajo terminar anormalmente. Tiempo de espera para la grabacin. Especifica durante cunto tiempo intentar la etapa grabar datos en un conducto antes de exceder el tiempo de espera. Los valores recomendados son de 30 a 600 segundos. Si la etapa supera el tiempo de espera , se emitir un error y el trabajo terminar anormalmente. v Columnas. Contiene las definiciones de columnas de los datos en el enlace de entrada elegido. Adems de los campos de definicin de columna estndar (Nombre de columna, Clave, Tipo de SQL, Longitud, Escala, Con posibilidades de nulos, Visualizacin, Elemento de datos y Descripcin), los separadores Columna de la etapa Sequential File tambin tienen los campos siguientes: Serie Null. Rellene este campo si desea alterar temporalmente el valor predeterminado del separador Formato correspondiente a esta columna en particular.
Captulo 4. Etapas de trabajo de servidor

47

Relleno. Rellene este campo si desea alterar temporalmente el valor predeterminado del separador Formato correspondiente a esta columna en particular. Contiene terminadores. No se aplica a los enlaces de entrada. Columna incompleta. No se aplica a los enlaces de entrada. Tenga en cuenta que la Escala de una columna de archivo secuencial tiene un lmite prctico de 14. Si se utilizan valores mayores que este, los resultados pueden ser ambiguos. Las propiedades de tipo de datos SQL afectan a cmo se graban los datos en un archivo secuencial. El tamao de visualizacin de SQL determina el tamao de las columnas de anchura fija. El tipo de datos SQL determina cmo se justifican los datos en una columna: los tipos de datos de carcter se escriben entre comillas y estn justificados a la izquierda, y los tipos de datos numricos no se escriben entre comillas y estn justificados a la derecha. Las propiedades de SQL estn en la cuadrcula Columnas cuando edita una columna de entrada. Pulse Ver datos... para abrir el Navegador de datos. Esto le permite examinar los datos asociados al enlace de entrada. Para obtener una descripcin del Navegador de datos, consulte el manual IBM InfoSphere DataStage and QualityStage Designer Client Guide.

Definicin de datos de salida de Sequential File


Al extraer (leer) datos de un archivo secuencial, la etapa Sequential File dispone de un enlace de salida. Las propiedades de este enlace y las definiciones de columnas de los datos se definen en la pgina Salidas del recuadro de dilogo Etapa Sequential File. La pgina Salidas presenta el campo y los tres separadores siguientes: v Nombre de salida. Nombre del enlace de salida. Seleccione el enlace que desee editar desde la lista Nombre de salida. Esta lista muestra todos los enlaces de salida con la etapa Sequential File. v General. Se visualiza de forma predeterminada. Hay dos campos: Nombre de archivo. El nombre de va de acceso del archivo del que se extraen los datos. Puede especificar un parmetro de trabajo que represente el archivo creado en tiempo de ejecucin. Tambin se puede localizar el archivo. Mandato de filtro. Aqu puede especificar un programa de filtro para procesar el archivo del que est extrayendo datos. Por ejemplo, esta caracterstica se puede utilizar para descomprimir un archivo comprimido antes de leerlo. Puede escribir el nombre del programa de filtro, o examinar para buscarlo, y especificar los argumentos de lnea de mandatos que necesite en el recuadro de texto. Este recuadro de texto slo estar habilitado si se ha seleccionado el recuadro de seleccin La etapa utiliza mandatos de filtro en el separador General de la pgina Etapa (consulte Utilizacin de la etapa Sequential File en la pgina 45). Tenga en cuenta que si se especifica un mandato de filtro, no se podrn examinar los datos, por lo que el botn Ver datos estar inhabilitado. Descripcin. Contiene una descripcin opcional del enlace de salida. v Formato. Contiene parmetros que determinan el formato de los datos del archivo. Hay tres recuadros de seleccin: Columnas de anchura fija. Si selecciona este recuadro de seleccin, los datos se extraen del archivo en columnas de anchura fija. La anchura de cada columna se especifica mediante el tamao de visualizacin de SQL (establecido en la columna Visualizacin de la cuadrcula Columnas). De forma predeterminada, esta opcin est borrada. La primera lnea es nombres de columnas. Seleccione este recuadro de seleccin si la primera fila de datos del archivo contiene nombres de columna. Esta opcin est sin marcar de forma predeterminada; es decir, la primera fila del archivo contiene datos. Supresin de advertencias de truncamiento de filas. Si el archivo secuencial que se est leyendo contiene ms columnas que las que haya definido, normalmente recibir avisos acerca de las filas

48

Gua del desarrollador de Server Job

demasiado largas cuando ejecute el trabajo. Si desea suprimir este mensaje (por ejemplo, es posible que slo est interesado en las tres primeras columnas y desee prescindir del resto), seleccione este recuadro de seleccin. Puede haber hasta ocho campos en el separador Formato: Accin si faltan columnas. Permite especificar la accin que se debe realizar cuando falta una columna de los datos de entrada. Elija Rellenar con nulo de SQL, Correlacionar serie vaca o Rellenar con serie vaca en la lista. Delimitador. Slo se activa si no ha especificado columnas de anchura fija. Contiene el delimitador que separa los campos de datos en el archivo. De forma predeterminada, este campo contiene una coma. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el delimitador. Carcter de cita. Slo se activa si no ha especificado columnas de anchura fija. Contiene el carcter utilizado para incluir series. De forma predeterminada, este campo contiene un carcter de comillas dobles. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el carcter de cita. Espacios entre columnas. Este campo slo se activa cuando selecciona el recuadro de seleccin Columnas de anchura fija. Contiene un nmero para representar el nmero de espacios utilizado entre columnas. Serie NULL predeterminada. Contiene caracteres que, cuando se encuentran en el archivo secuencial que se est leyendo, se interpretan como el valor nulo de SQL (que puede ser sobrescrito para definiciones de columna individuales en el separador Columnas). Relleno predeterminado. Contiene el carcter utilizado para rellenar las columnas ausentes. Es # de forma predeterminada, pero puede establecerse en otro carcter para aplicarlo a todas las columnas o puede alterarse temporalmente para definiciones de columnas individuales en el separador Columnas. Los campos siguientes slo aparecen si ha seleccionado La etapa utiliza conductos con nombre en la pgina Etapa: Esperar que transcurra el tiempo de espera del grabador. Especifica cunto tiempo esperar la etapa una conexin durante la grabacin en un conducto antes de que se exceda el tiempo de espera. Los valores recomendados son de 30 a 600 segundos. Si la etapa supera el tiempo de espera , se emitir un error y el trabajo terminar anormalmente. Tiempo de espera para la lectura. Especifica durante cunto tiempo intentar la etapa leer datos de un conducto antes de exceder el tiempo de espera. Los valores recomendados son de 30 a 600 segundos. Si la etapa supera el tiempo de espera , se emitir un error y el trabajo terminar anormalmente. v Columnas. Contiene las definiciones de columnas de los datos en el enlace de salida elegido. Adems de los campos de definicin de columna estndar (Nombre de columna, Clave, Tipo de SQL, Longitud, Escala, Con posibilidades de nulos, Visualizacin, Elemento de datos y Descripcin), los separadores Columna de la etapa Sequential File tambin tienen los campos siguientes: Serie Null. Rellene este campo si desea alterar temporalmente el valor predeterminado del separador Formato correspondiente a esta columna en particular. Relleno. Rellene este campo si desea alterar temporalmente el valor predeterminado del separador Formato correspondiente a esta columna en particular. Contiene terminadores. Utilice este campo para especificar cmo se tratan las marcas de fin de registro, (EOR, del ingls End of Record) en esta columna. Elija entre: S para especificar que los datos pueden incluir marcas de EOR y que su significado no se debe interpretar como el de fin de registro. Para la definicin de la columna final de un archivo CSV, la opcin S est inhabilitada.
Captulo 4. Etapas de trabajo de servidor

49

Entrecomillado para especificar que las marcas de EOR que forman parte de los datos van entrecomilladas, mientras que las marcas de EOR sin entrecomillar se deben interpretar como fin de registro. No para especificar que las marcas de EOR de la columna se deben interpretar como fin de registro. Columna incompleta. Permite especificar la accin que se realiza si la columna contiene datos insuficientes para coincidir con los metadatos. Puede elegir: Error para terminar anormalmente el trabajo cuando se encuentra una fila de este tipo. Descartar y avisar para descartar la fila de datos actual y emitir un aviso. Sustituir y avisar para rellenar una columna corta con un nulo de SQL, o actuar de acuerdo con Accin si faltan columnas si falta una columna y grabar un aviso en el archivo de registro. Retener y avisar para pasar los datos tal cual, pero emitiendo un aviso. Retener para pasar los datos tal cual. Sustituir para rellenar una columna corta con un nulo de SQL, o actuar de acuerdo con Accin si faltan columnas si falta una columna. El comportamiento de Columna incompleta tambin depende de si el archivo es de anchura fija o CSV. En formato CSV, resulta imposible tener una columna corta, de modo que la opcin se aplica slo a las columnas ausentes y las opciones Retener no tienen sentido. Pulse Ver datos... para abrir el Navegador de datos. Esto le permitir ver los datos asociados con el enlace de salida.

Cmo se comporta la etapa Sequential


Las tablas siguientes muestran cmo una etapa Sequential File procesa dos filas de datos con varias opciones establecidas en el editor de etapas. Los metadatos del enlace especifican que los datos se organizan en tres columnas que contienen tres caracteres cada una. En la tabla, <EMPTY> indica un nulo SQL, una serie vaca o una serie vaca correlacionada, dependiendo de los valores. Conjunto de datos de entrada 1 Fila 1: ABC|123|<LF>YZ<LF> Fila 2: PQR...
Tabla 3. Conjunto de datos de entrada 1 Opciones Opciones Finalizacin de lnea <LF> UNIX Opciones de columna: (se aplica a todas las filas) Contiene Datos de salida terminadores Columna Columna (primera fila) N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Ninguno Ninguno ABC|123|<EMPTY> ABC|123|<EMPTY> "ABC|123|" " " " " "ABC|123|" " " " " ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ Entradas de registro Error muy grave Aviso Aviso Ninguno Aviso Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Inicio de 2 fila? Comentario n/d S S S S S P P P P P P Sin datos de salida Fila 1 descartada Fila fantasma Fila fantasma Fila fantasma Fila fantasma Datos Datos Datos Datos Datos Datos correctos correctos correctos correctos correctos correctos

<LF> UNIX

50

Gua del desarrollador de Server Job

Tabla 3. Conjunto de datos de entrada 1 (continuacin) Opciones Opciones Finalizacin de lnea <CR><LF> DOS Opciones de columna: (se aplica a todas las filas) Contiene Datos de salida terminadores Columna Columna (primera fila) N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ ABC|123|<LF>YZ Entradas de registro Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Inicio de 2 fila? Comentario n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d <LF> <LF> <LF> <LF> <LF> <LF> Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin fin fin fin fin fin fin fin fin fin fin fin fin de de de de de de de de de de de de fila fila fila fila fila fila fila fila fila fila fila fila

<CR><LF> DOS

Ninguno

n/d

Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos

de de de de de de

Conjunto de datos de entrada 2 Fila 1: ABC|123|X<LF>Z<LF> Fila 2: PQR...


Tabla 4. Conjunto de datos de entrada 2 Opciones Opciones Finalizacin de lnea <LF> UNIX Opciones de columna: (se aplica a todas las filas) Contiene Datos de salida terminadores Columna Columna (primera fila) N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Ninguno Ninguno ABC|123|<EMPTY> ABC|123|<EMPTY> ABC|123|X ABC|123|X ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z Entradas de registro Error muy grave Aviso Aviso Ninguno Aviso Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Inicio de 2 fila? Comentario n/d Z Z Z Z Z P P P P P P Sin datos de salida Fila 1 descartada Fila fantasma Fila fantasma Fila fantasma Fila fantasma Datos Datos Datos Datos Datos Datos correctos correctos correctos correctos correctos correctos

<LF> UNIX

Captulo 4. Etapas de trabajo de servidor

51

Tabla 4. Conjunto de datos de entrada 2 (continuacin) Opciones Opciones Finalizacin de lnea <CR><LF> DOS Opciones de columna: (se aplica a todas las filas) Contiene Datos de salida terminadores Columna Columna (primera fila) N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z ABC|123|X<LF>Z Entradas de registro Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Inicio de 2 fila? Comentario n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d <LF> <LF> <LF> <LF> <LF> <LF> Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin fin fin fin fin fin fin fin fin fin fin fin fin de de de de de de de de de de de de fila fila fila fila fila fila fila fila fila fila fila fila

<CR><LF> DOS

Ninguno

n/d

Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos

de de de de de de

Conjunto de datos de entrada 3 Fila 1: ABC|12<LF>|XYZ<LF> Fila 2: PQR...


Tabla 5. Conjunto de datos de entrada 3 Opciones Opciones Opciones de columna: (se aplica a todas las filas) Inicio de Entradas de 2 fila? Comentario registro Error muy grave Aviso Aviso Ninguno Aviso Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno n/d Sin datos de XXXXX salida Descartar fila 1 Fila fantasma Fila fantasma Fila fantasma Fila fantasma P P P P P P Datos Datos Datos Datos Datos Datos correctos correctos correctos correctos correctos correctos

Finalizacin Contiene Datos de salida de lnea terminadores Columna Columna(primera fila) <LF> UNIX N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Ninguno Ninguno ABC|<EMPTY>| <EMPTY> ABC|<EMPTY>| <EMPTY> ABC|12|<EMPTY> ABC|12|<EMPTY> ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ

<LF> UNIX

Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener

52

Gua del desarrollador de Server Job

Tabla 5. Conjunto de datos de entrada 3 (continuacin) Opciones Opciones Opciones de columna: (se aplica a todas las filas) Inicio de Entradas de 2 fila? Comentario registro Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d n/d <LF> <LF> <LF> <LF> <LF> <LF> Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin Sin fin fin fin fin fin fin fin fin fin fin fin fin de de de de de de de de de de de de fila fila fila fila fila fila fila fila fila fila fila fila

Finalizacin Contiene Datos de salida de lnea terminadores Columna Columna(primera fila) <CR><LF> DOS N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ ABC|12<LF>|XYZ

<CR><LF> DOS

Ninguno

n/d

Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos

de de de de de de

Conjunto de datos de entrada 4 Fila 1: ABC|123|<eof>


Tabla 6. Conjunto de datos de entrada 4 Opciones Opciones Finalizacin de lnea <LF> UNIX Opciones de columna: (se aplica a todas las filas) Contiene Datos de salida terminadores Columna Columna(primera fila) N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Ninguno Ninguno ABC|123|<EMPTY> ABC|123|<EMPTY> "ABC|123|" " " " " "ABC|123|" " " " " Ninguno Ninguno ABC|123|<EMPTY> ABC|123|<EMPTY> "ABC|123|" " " " " "ABC|123|" " " " " Inicio de Entradas de 2 fila? Comentario registro Error muy grave Aviso Aviso Ninguno Aviso Ninguno Error muy grave Aviso Aviso Ninguno Aviso Ninguno n/d Sin datos de salida Descartar fila 1 Datos correctos Datos correctos Datos correctos Datos correctos Sin datos de salida Descartar fila 1 Datos correctos Datos correctos Datos correctos Datos correctos

<LF> UNIX

n/d

Captulo 4. Etapas de trabajo de servidor

53

Tabla 6. Conjunto de datos de entrada 4 (continuacin) Opciones Opciones Finalizacin de lnea <CR><LF> DOS Opciones de columna: (se aplica a todas las filas) Contiene Datos de salida terminadores Columna Columna(primera fila) N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Ninguno Ninguno ABC|123|<EMPTY> ABC|123|<EMPTY> "ABC|123|" " " " " "ABC|123|" " " " " Ninguno Ninguno ABC|123|<EMPTY> ABC|123|<EMPTY> "ABC|123|" " " " " "ABC|123|" " " " " Ninguno Ninguno ABC|123|<EMPTY> ABC|123|<EMPTY> "ABC|123|" " " " " "ABC|123|" " " " " Inicio de Entradas de 2 fila? Comentario registro Error muy grave Aviso Aviso Ninguno Aviso Ninguno Error muy grave Aviso Aviso Ninguno Aviso Ninguno Error muy grave Aviso Aviso Ninguno Aviso Ninguno n/d Sin datos de salida Descartar fila 1 Datos correctos Datos correctos Datos correctos Datos correctos Sin datos de salida Descartar fila 1 Datos correctos Datos correctos Datos correctos Datos correctos Sin datos de salida Descartar fila 1 Datos correctos Datos correctos Datos correctos Datos correctos

<CR><LF> DOS

n/d

Ninguno

n/d

n/d

Conjunto de datos de entrada 5 Fila 1: ABC|12<CR>|<LF>YZ<CR><LF> Fila 2: PQR...


Tabla 7. Conjunto de datos de entrada 5 Opciones Opciones Opciones de columna: (se aplica a todas las filas) Inicio de Entradas de 2 fila? Comentario registro Error muy grave Aviso Aviso Ninguno Aviso Ninguno n/d S S S S S Sin datos de salida Descartar fila 1 Fila fantasma Fila fantasma Fila fantasma Fila fantasma

Finalizacin Contiene Datos de salida de lnea terminadores Columna Columna (primera fila) <LF> UNIX N Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener Ninguno Ninguno ABC|12<CR>| <EMPTY> ABC|12<CR>| <EMPTY> "ABC|12<CR>| " " " " " "ABC|12<CR>| " " " " "

54

Gua del desarrollador de Server Job

Tabla 7. Conjunto de datos de entrada 5 (continuacin) Opciones Opciones Opciones de columna: (se aplica a todas las filas) Inicio de Entradas de 2 fila? Comentario registro Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno P P P P P P Datos Datos Datos Datos Datos Datos correctos correctos correctos correctos correctos correctos

Finalizacin Contiene Datos de salida de lnea terminadores Columna Columna (primera fila) <LF> UNIX S Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ Ninguno Ninguno ABC|<EMPTY>| <EMPTY> ABC|<EMPTY>| <EMPTY> ABC|12|<EMPTY> ABC|12|<EMPTY> ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ ABC|12<CR>| <LF>YZ

<CR><LF> DOS

Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener

Error muy grave Aviso Aviso Ninguno Aviso Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno

n/d S S S S S

Sin datos de salida Descartar fila 1 Fila fantasma Fila fantasma Fila fantasma Fila fantasma Datos Datos Datos Datos Datos Datos correctos correctos correctos correctos correctos correctos

<CR><LF> DOS

Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener

P P P P P P

Ninguno

n/d

Error Descartar y avisar Sustituir y avisar Sustituir Retener y avisar Retener

Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno

<CR> <CR> <CR> <CR> <CR> <CR>

Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos Omisin datos

de de de de de de

Etapas Aggregator
Las etapas Aggregator clasifican las filas de datos de un solo enlace de entrada en grupos y calculan totales u otras funciones de totales para cada grupo. La etapa produce los totales sumados de cada grupo mediante un enlace de salida.

Captulo 4. Etapas de trabajo de servidor

55

Utilizacin de una etapa Aggregator


Si desea agregar los datos de entrada de varias formas, puede tener varios enlaces de salida, donde cada uno especifica un conjunto diferente de propiedades para definir cmo se agrupan y se resumen los datos de entrada. Cuando edita una etapa Aggregator, aparece el recuadro de dilogo Etapa Aggregator. Este recuadro de dilogo tiene tres pginas: v Etapa. Muestra el nombre de la etapa que se est editando. Esta pgina tiene un separador General que contiene una descripcin opcional de la etapa y los nombres de las rutinas anterior y posterior. Para obtener ms informacin sobre estas rutinas, consulte Subrutinas anteriores y posteriores a la etapa. v Entradas. Especifica las definiciones de columna para el enlace de entrada de datos. v Salidas. Especifica las definiciones de columna para el enlace de salida de datos. Pulse Aceptar para cerrar este recuadro de dilogo. Los cambios se guardan cuando se guarda el trabajo.

Subrutinas anteriores y posteriores a la etapa


El separador General de la pgina Etapa contiene campos opcionales que permiten definir las rutinas que se van a utilizar, que se ejecutan antes o despus de que la etapa haya procesado los datos. v Subrutina anterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta antes de que la etapa empiece a procesar datos. Por ejemplo, se puede especificar una rutina que prepare los datos antes de que se inicie el proceso. v Subrutina posterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta despus de que la etapa haya procesado los datos. Por ejemplo, se puede especificar una rutina que enve un mensaje electrnico cuando la etapa haya finalizado. Seleccione una rutina en la lista. Esta lista contiene todas las rutinas definidas como una Subrutina anterior/posterior en la carpeta Rutinas del rbol de repositorio. Entre un valor apropiado para el argumento de entrada de la rutina en el campo Valor de entrada. Si elige una rutina definida en el repositorio, que se ha editado pero que no se ha compilado, un mensaje de aviso le recordar que debe compilar la rutina cuando cierre el recuadro de dilogo Etapa Aggregator. Un cdigo de retorno 0 de la rutina indica que ha resultado satisfactoria y cualquier otro cdigo indica que la rutina ha resultado anmala y provoca un error muy grave cuando se ejecuta el trabajo. Si ha instalado o importado un trabajo, es posible que el campo Subrutina anterior a la etapa o Subrutina posterior a la etapa haga referencia a una rutina que no exista en el sistema. En tal caso, aparecer un mensaje de aviso cuando cierre el recuadro de dilogo Etapa Aggregator. Debe instalar o importar la rutina "ausente" o seleccionar una rutina alternativa que utilizar.

Definicin de datos de entrada de Aggregator


Los datos que se van a agregar se pasan de una etapa anterior en el diseo de trabajo a la etapa Aggregator mediante un nico enlace de entrada. Las propiedades de este enlace y las definiciones de columnas de los datos se definen en la pgina Entradas del recuadro de dilogo Etapa Aggregator. Nota: La etapa Aggregator no conserva el orden de las filas de entrada, incluso cuando los datos de entrada ya estn ordenados. La pgina Entradas presenta el campo y los dos separadores siguientes:

56

Gua del desarrollador de Server Job

v Nombre de entrada. Nombre del enlace de entrada a la etapa Aggregator. v General. Se visualiza de forma predeterminada. Contiene una descripcin opcional del enlace. v Columnas. Contiene una cuadrcula que muestra las definiciones de columna para los datos que se estn grabando en la etapa y un orden de clasificacin opcional. Nombre de la columna. Nombre de la columna. Ordenacin. Muestra la posicin clave de orden de la columna, si la ordenacin est habilitada. Para obtener ms informacin, consulte Definicin del orden de clasificacin de la columna de entrada. Orden de clasificacin. Especifica el orden de clasificacin. Este campo esta en blanco de forma predeterminada; es decir, no hay orden de clasificacin. Elija Ascendente para el orden ascendente, Descendiente para el orden descendiente o Ignorar si no desea seleccionar una clasificacin. Clave. Indica si la columna forma parte de la clave primaria. Tipo SQL. Tipo de datos SQL. Longitud. Precisin de los datos. Es la longitud para los datos CHAR y la longitud mxima para los datos VARCHAR. Escala. Factor de escala de los datos. Con posibilidades de nulos. Especifica si la columna puede contener valores nulos. Visualizacin. Nmero mximo de caracteres necesarios para visualizar los datos de la columna. Elemento de datos. Tipo de datos de la columna. Descripcin. Una descripcin en texto de la columna.

Definicin del orden de clasificacin de la columna de entrada


Cuando la etapa Aggregator clasifica datos de entrada para la agregacin, se almacenan en la memoria. Si se ordenan una o varias columnas de grupo en los datos de entrada, puede mejorar considerablemente el modo en que la etapa Aggregator maneja los datos. Los datos de entrada ordenados pueden producirse como salida de una etapa ODBC o UniVerse (utilizando una clusula ORDER BY en la sentencia SQL) o una etapa Sequential File. Para utilizar datos de entrada ordenados, puede utilizar las propiedades de columna adicionales en el separador Columnas de la pgina Entradas. Escriba un nmero en la columna Ordenar para especificar la posicin que ocupa la columna en la clave de ordenacin. Por ejemplo, si los datos de entrada se han ordenado por fecha y posteriormente por cdigo de producto, la posicin de la clave de ordenacin para la columna de fecha ser 1 y la posicin de la clave de ordenacin para la columna de cdigo de producto ser 2. Un valor de 1 siempre indica la clave ms significativa. Si no especifica ningn valor en este campo, la columna se aadir el final de la secuencia de claves de ordenacin. Cuando pulsa Aceptar, todas las columnas se ordenan en secuencia de la columna ms significativa hacia arriba. Elija el orden en que se ordenan los datos en la columna Orden de clasificacin. El valor predeterminado es ninguno: v Ascendente. Seleccione esta opcin si los datos de entrada de la columna especificada se ordenan en orden ascendente. Si selecciona esta opcin, el servidor de IBM InfoSphere DataStage comprobar el orden en tiempo de ejecucin. v Descendente. Seleccione esta opcin si los datos de entrada de la columna especificada se ordenan en orden descendente. Si selecciona esta opcin, el servidor de InfoSphere DataStage comprobar el orden en tiempo de ejecucin. v Ignorar. No comprueba el orden. Seleccione esta opcin si el orden de clasificacin utilizado por los datos de entrada no es simplemente ascendente o descendente sino que se utiliza un orden de clasificacin ms complejo. Al seleccionar esta opcin, debe hacerlo con prudencia. En tiempo de

Captulo 4. Etapas de trabajo de servidor

57

ejecucin, el servidor de InfoSphere DataStage no comprueba el orden de clasificacin de los datos, lo que puede producir errores. Si selecciona esta opcin, aparece un mensaje de aviso cuando pulsa Aceptar. Para poder editar otras columnas de entrada, deber aceptar este mensaje.

Definicin de datos de salida de Aggregator


Cuando extrae datos de una etapa Aggregator, las propiedades de los enlaces de salida y las definiciones de columnas de los datos se definen en la pgina Salidas del recuadro de dilogo Etapa Aggregator. La pgina Salidas presenta el campo y los dos separadores siguientes: v Nombre de salida. Nombre del enlace de salida. Seleccione el enlace que desee editar desde la lista Nombre de salida. Esta lista muestra todos los enlaces de salida desde la etapa. v General. Se visualiza de forma predeterminada. Contiene una descripcin opcional del enlace. v Columnas. Contiene una cuadrcula que muestra las definiciones de columna para los datos que se estn extrayendo de la etapa. La cuadrcula tiene las columnas siguientes: Nombre de la columna. Nombre de la columna. Grupo. Especifica si se deben realizar una agrupacin de acuerdo con los datos de la columna. Derivacin. Contiene una expresin que especifica cmo se agregan los datos. Esta es una celda compleja que requiere ms de un dato. Si efecta una doble pulsacin en la celda, se abre el recuadro de dilogo Derivacin. Para obtener ms informacin, consulte Agregacin de datos. Clave. Indica si la columna forma parte de la clave primaria. Tipo SQL. Tipo de datos SQL. Longitud. Precisin de los datos. Es la longitud para los datos CHAR y la longitud mxima para los datos VARCHAR. Escala. Factor de escala de los datos. Con posibilidades de nulos. Especifica si la columna puede contener valores nulos. Visualizacin. Nmero mximo de caracteres necesarios para visualizar los datos de la columna. Elemento de datos. Tipo de datos de la columna. Descripcin. Una descripcin en texto de la columna. Para obtener una descripcin de cmo entrar y editar definiciones de columna, consulte el manual IBM InfoSphere DataStage and QualityStage Designer Client Guide.

Agregacin de datos
Los orgenes de datos de los que se extraen los datos pueden contener cientos de miles de filas de datos. Por ejemplo, los datos en una base de datos de ventas pueden contener informacin sobre cada transaccin o venta. Puede pasar todos estos datos a su depsito de datos. No obstante, esto significa que deber realizar bsquedas en grandes volmenes de datos en el depsito de datos antes de obtener los resultados que desee. Si slo desea informacin de resumen, por ejemplo, el total del producto A vendido desde el 01/01/96, puede agregar los datos y pasar slo la suma total al depsito de datos. Esto reduce la cantidad de datos que se almacenan en el depsito de datos, acelera el tiempo necesario para encontrar los datos que desea y garantiza que el depsito de datos almacene los datos con el formato que necesita. La etapa Aggregator permite agrupar por o resumir las columnas que desee en cualquiera de los enlaces de salida. Nota: Cada salida de columna de una etapa Aggregator debe estar resumida, o se debe haber agrupado por ella.

58

Gua del desarrollador de Server Job

Un grupo de datos de entrada es un conjunto de filas de entrada que comparten los mismos valores, agrupados por comas. Por ejemplo, si la base de datos de ventas contiene informacin sobre tres productos diferentes, A, B y C, puede agruparla por la columna Producto. Toda la informacin sobre el producto A se agrupar conjuntamente, de la misma forma que toda la informacin de los productos B y C. Al resumir los datos, puede realizar clculos bsicos en los valores de una determinada columna. Las acciones que puede realizar dependen del tipo de datos SQL de la columna seleccionada. Puede realizar las acciones siguientes para los tipos de datos SQL numricos: v Mnimo. Devuelve el valor ms bajo de la columna. v v v v v v v Mximo. Devuelve el valor ms alto de la columna. Recuento. Cuenta el nmero de valores de la columna. Suma. Suma los valores totales de la columna. Promedio. Proporciona el promedio de los valores de la columna. Primer. Devuelve el primer valor de la columna. ltimo. Devuelve el ltimo valor de la columna. Desviacin estndar. Devuelve la desviacin estndar de los valores en la columna. Al calcular la desviacin estndar, IBM InfoSphere DataStage utiliza la frmula:
desviacin_estndar = sqrt [ (sum(Xi2) - N avg(Xi)2) / N ]

Algunos otros paquetes como, por ejemplo, Microsoft Excel, utilizan la frmula:
desviacin_estndar = sqrt [ (sum(Xi2) - N avg(Xi)2) / (N-1)]

Puede realizar las acciones siguientes para los dems tipos de datos SQL: v Mnimo. Devuelve el valor ms bajo de la columna. v v v v Mximo. Devuelve el valor ms alto de la columna. Recuento. Cuenta el nmero de valores de la columna. Primer. Devuelve el primer valor de la columna. ltimo. Devuelve el ltimo valor de la columna.

Por ejemplo, si desea saber el nmero total del producto A vendido, debe sumar los valores de la columna QtySold. Para agrupar por o resumir una columna, debe editar la columna Derivacin en el recuadro de dilogo Columna de salida. Para ello, efecte una doble pulsacin en la celda para abrir el recuadro de dilogo Derivacin. El recuadro de dilogo Derivacin contiene los campos y las opciones siguientes: v Columna de origen. Contiene el nombre de la columna por la que desea agrupar o que desea resumir, con el formato nombre_enlace.nombre_columna. Puede elegir cualquiera de las columnas de entrada de la lista. v Funcin agregada. Contiene la funcin de agregacin que se ejecuta. Elija la funcin que desee en la lista. La opcin predeterminada es Suma. v Agrupar por esta columna. Especifica si la columna se agrupar. Este recuadro de seleccin est deseleccionado de forma predeterminada. Si desea agrupar por la columna, seleccione el recuadro de seleccin Agrupar por esta columna. La funcin agregada se establece automticamente en (agrupada) y no puede seleccionar una funcin agregada en la lista.
Captulo 4. Etapas de trabajo de servidor

59

Para utilizar una funcin agregada, deseleccione el recuadro de seleccin Agrupar por esta columna y seleccione la funcin que desee utilizar en la lista Funcin agregada. Pulse Aceptar para guardar los valores de la columna.

Etapa Command
La etapa Command es una etapa activa que puede ejecutar distintos mandatos externos, incluidos los mandatos de motor de servidor, los programas y los trabajos desde cualquier punto del flujo de datos de IBM InfoSphere DataStage. Puede ejecutar un mandato cualquiera, incluidos sus argumentos, que puede escribir en el shell del sistema operativo como, por ejemplo, Windows o UNIX. A modo de ejemplo cabe citar scripts Perl, archivos por lotes DOS, scripts UNIX y otros programas ejecutables de lnea de mandatos que pueda llamar si no son interactivos. Hay disponible una interfaz grfica de usuario (GUI) para la etapa Command. Puede utilizar la etapa Command en cualquier lugar de la va de acceso de trabajo para invocar un mandato externo. Las rutinas anteriores y posteriores que ya estn disponibles actan de forma parecida, excepto que puede colocar la etapa Command en cualquier lugar de una secuencia de trabajos e invocarla varias veces en paralelo. Si la etapa se coloca en medio de una secuencia y no se selecciona No reenviar datos de fila, los datos se mueven al enlace de salida. Si la etapa est al final de una va de acceso, ejecuta el mandato y pasa los datos entrantes sin alterar. La llega de la fila slo causa la ejecucin del mandato. La etapa Command slo puede tener un enlace de entrada y un enlace de salida: v Enlace de entrada. Especifica una fila de datos reales o una fila individual de una instancia previa de la etapa Command. Puede colocar una etapa Command en medio de una secuencia o al final de una va de acceso de trabajo (sin ningn enlace de salida). v Enlace de salida. Si ejecuta una etapa Command al principio de una va de acceso de trabajo para un enlace de salida, la etapa ejecuta el mandato especificado y enva una fila individual en el enlace de salida. Como mnimo, esta fila contiene el cdigo de retorno del mandato especificado en la primera columna. A continuacin, una etapa Transformer puede utilizar las operaciones de ramificacin de InfoSphere DataStage para procesar el cdigo. Si selecciona Salida a enlace, la segunda columna mantiene la salida del mandato. La GUI maneja la creacin de columnas en el enlace de salida al examinar los valores de Salida a enlace, No reenviar datos de fila y No esperar al mandato.

Funcionalidad
Funcionalidad soportada
La etapa Command tiene la funcionalidad siguiente: v Ms flexibilidad que cuando se utilizan otras rutinas anteriores o posteriores a la etapa. v Metadatos visuales y textuales. v Invocacin grfica de mandatos externos sin recurrir a la codificacin del control de trabajos. v Un proceso ms sencillo de los cdigos de retorno de los mandatos externos. v La etapa y sus enlaces aparecen como metadatos de sucesos en los Servicios de gestin de metadatos de la suite de IBM InfoSphere DataStage. v Soporte para soporte multilingstico.

60

Gua del desarrollador de Server Job

Funcionalidad no soportada
La siguiente funcionalidad no est soportada: v Prestaciones de transformacin de datos en las filas que fluyen en la etapa. Para ello, utilice la etapa Transformer y Aggregator. v Mandatos que requieren la entrada del usuario o la creacin de ventanas. Generan anomalas en los trabajos. v Acceso de cliente a un RDBMS. Si desea ejecutar una sentencia SQL, utilice llamadas a las aplicaciones de cliente existentes, incluidos los trabajos de InfoSphere DataStage. v Acceso directo a los mandatos del motor de servidor. No puede utilizar esta etapa para devolver filas que se generan como resultado de una ejecucin de mandato en el motor.

Terminologa
La lista siguiente describe los trminos de la etapa Command utilizados en este documento: Trmino Descripcin Rutinas anteriores y posteriores Las rutinas externas que puede definir para que se invoquen antes de que se inicie un trabajo y despus de que se salga de un trabajo. Grabe estas rutinas en BASIC de IBM InfoSphere DataStage. Algunas etapas dan soporte a las rutinas anteriores y posteriores a la etapa. Estas se invocan antes o despus de invocar una etapa. ExecTCL Una rutina incorporada que ejecuta mandatos del motor de servidor desde un trabajo de InfoSphere DataStage. ExecDOS Una rutina incorporada que ejecuta mandatos de DOS desde un trabajo de InfoSphere DataStage.

Utilizacin de la etapa Command


Si utiliza la interfaz grfica de usuario para editar una etapa Command, se abre el recuadro de dilogo Etapa Command. Este recuadro de dilogo tiene las pginas Etapa, Entrada y Salida, en funcin de si existen entradas a y salidas de la etapa: v Etapa. Esta pgina muestra el nombre de la etapa que se est editando. El separador General define el tipo de mandato, el texto del mandato, la accin que se debe emprender si se produce un error, dnde grabar la salida y si el trabajo debe esperar que se complete el mandato. Tambin puede describir el objetivo de la etapa. Para obtener detalles, consulte Definicin de la etapa Command. El separador Soporte multilingstico define una correlacin de juego de caracteres que se debe utilizar con la etapa. Este separador slo aparece si se ha instalado el soporte multilingstico para IBM InfoSphere DataStage. Para obtener detalles, consulte Definicin de la correlacin de juego de caracteres en la pgina 62. v Entrada. Esta pgina slo se muestra si dispone de un enlace de entrada de esta pgina. Especifica cuando debe ejecutarse el mandato y cmo deben tratarse las filas desde este enlace. v Salida. Esta pgina slo se muestra si dispone de un enlace de salida de esta etapa. Especifica cmo debe tratarse la salida desde el mandato.

Definicin de la etapa Command


Los parmetros del mandato se establecen en el separador General de la pgina Etapa. Especifique la informacin adecuada utilizando los siguientes campos:
Captulo 4. Etapas de trabajo de servidor

61

v Tipo de mandato. El tipo de mandato que se debe ejecutar. Seleccione una de las opciones siguientes: OS. La etapa ejecuta un mandato de sistema operativo. TCL. La etapa ejecuta un mandato de motor de servidor. Puede ejecutar programas BASIC de IBM InfoSphere DataStage. Para obtener informacin sobre cmo utilizar estos mandatos, consulte Utilizacin de mandatos en la pgina 64. v Mandato. La serie que se debe pasar como mandato. v Terminar anormalmente si el mandato falla. Si se selecciona, el trabajo termina anormalmente si se produce un error al ejecutar el mandato. v Inhabilitar salida en registro. Si se selecciona, la salida del mandato no se graba en el registro de InfoSphere DataStage. v No esperar al mandato. Si se selecciona, el trabajo no espera a que el mandato finalice antes de continuar. El trabajo es un proceso independiente y prosigue con el proceso de los datos. Ejecuta el mandato como una hebra en Windows. La etapa espera si el mandato an se est ejecutando despus de procesar todos los datos. Si selecciona esta opcin se eliminan los elementos de datos COMMAND.RTNCODE y COMMAND.OUTPUT desde el enlace de salida. No se permite la salida de enlace, pero el cdigo de retorno y de salida para el mandato se siguen grabando en el registro de InfoSphere DataStage y en el archivo de salida. la primera columna en el enlace de salida no se utiliza para el cdigo de retorno. De forma adicional, se inhabilitan las opciones siguientes: Terminar anormalmente si el mandato falla (etapa) Repetir para cada fila (entrada) Ejecutar mandato despus de fila (entrada) No reenviar datos de fila (entrada) Salida a enlace (salida) v Salida a archivo. Graba la salida desde el mandato a un archivo. Si no especifica un nombre de va de acceso, el archivo se crea en el directorio padre para el proyecto. Si deja el campo en blanco, no se crea ningn archivo de salida. v Descripcin. Opcional. Describe el objetivo de la etapa Command.

Definicin de la correlacin de juego de caracteres


Puede definir una correlacin de juego de caracteres para una etapa. Realice esta tarea desde el separador Soporte multilingstico en la pgina Etapa. El separador Soporte multilingstico slo aparece si ha instalado el soporte multilingstico. Especifique la informacin mediante el siguiente botn y los siguientes campos: v Correlacionar el nombre que debe utilizarse con la etapa. Se define la correlacin de juego de caracteres predeterminada para el proyecto o el trabajo. Puede cambiar la correlacin seleccionando un nombre de correlacin de la lista. v Utilizar parmetro de trabajo.... Especifica los valores de los parmetros para el trabajo. Utilice el formato #Parm#, donde Parm es el nombre del parmetro de trabajo. La serie #Parm# se sustituye por el parmetro de trabajo cuando se ejecuta el trabajo. v Mostrar todas las correlaciones. Lista todas las correlaciones que se envan con IBM InfoSphere DataStage. v Slo correlaciones cargadas. Muestra una lista de las correlaciones que estn cargadas en ese momento.

62

Gua del desarrollador de Server Job

Definicin de los datos de entrada de la etapa Command


Cuando una fila de datos reales o una fila individual de una instancia previa de la etapa Command llega a un enlace de entrada de esta etapa, ejecuta el mandato especificado. Defina las propiedades de este enlace y las definiciones de columna de los datos en la pgina Entrada en el recuadro de dilogo Etapa Command de la interfaz grfica de usuario.

Acerca de la pgina Entrada


La pgina Entrada tiene un campo Nombre de entrada, los separadores General y Columnas y el botn Columnas.... v Nombre de entrada. Nombre del enlace de entrada. Seleccione el enlace que desee editar desde el recuadro de la lista desplegable Nombre de entrada. Este recuadro de lista muestra todos los enlaces de entrada a la etapa Command. v Pulse el botn Columnas... para visualizar una breve lista de las columnas asociadas con el enlace de entrada. Puede seguir visualizando la lista a medida que va entrando metadatos detallados en el separador Columnas. Separador General: Este separador, de forma predeterminada, contiene los campos siguientes: v Repetir para cada fila. Si se selecciona, ejecuta el mandato especificado para cada fila que llega a este enlace. Si no selecciona No esperar a mandato desde el separador General de la pgina Etapa, esta opcin estar inhabilitada para evitar saturar al servidor con procesos. v Ejecutar mandato despus de fila. Si se selecciona, ejecuta el mandato especificado despus de copiar y enviar la fila al enlace de salida. Si no existe ningn enlace de salida, la opcin se inhabilita. De modo predeterminado, el mandato se ejecuta de forma asncrona cuando la fila llega al enlace de entrada. Si selecciona esta opcin se eliminan los elementos de datos COMMAND.RTNCODE y COMMAND.OUTPUT desde el enlace de salida. No se permite la salida de enlace, pero el cdigo de retorno y de salida para el mandato se siguen grabando en el registro de IBM InfoSphere DataStage y en el archivo de salida. Las opciones siguientes estn inhabilitadas: No reenviar datos de fila (entrada) Salida a enlace (salida) v No reenviar datos de fila. Si se borra, la etapa pasa a travs de filas hacia el mismo nmero de columnas en el enlace de salida, siempre que contenga tanto enlaces de entrada como de salida. No puede seleccionar esta opcin si no existe ningn enlace de salida. Si se borra, las definiciones de columna se copian desde el enlace de entrada al enlace de salida. La etiqueta "La etapa Command pasa a travs de la columna" del campo Descripcin identifica cada columna copiada para su eliminacin. v Descripcin. Opcional. Describe el objetivo del enlace de entrada. Separador Columnas: Este separador contiene las definiciones de columna para los datos grabados en el origen de datos. El separador Columnas se comporta de la misma forma que el separador Columnas de la etapa ODBC.

Definicin de datos de salida de etapa Command


Puede grabar la salida de un mandato como una columna en un enlace de salida de la etapa Command. La interfaz grfica de usuario gestiona automticamente las definiciones de columna de salida. Las

Captulo 4. Etapas de trabajo de servidor

63

columnas de salida dependen ms de lo que haya seleccionado para los valores de campo que de los requisitos de los metadatos en sus destinos. Por ello, tiene una flexibilidad mnima al definir las columnas de salida de la etapa Command. El paso a travs de columnas debe tener los mismos tipos datos y tamaos que las correspondientes columnas de entrada. No obstante, puede editar los campos Nombre, Elemento de datos, Derivacin y Descripcin para las columnas.

Acerca de la pgina Salida


La pgina Salida tiene un campo Nombre de salida, los separadores General y Columnas y el botn Columnas.... v Nombre de salida. Nombre del enlace de salida. Seleccione el enlace que desee editar desde el recuadro de la lista desplegable Nombre de salida. Este recuadro de lista muestra todos los enlaces de salida. v Pulse el botn Columnas... para visualizar una breve lista de columnas designadas en este enlace. Puede seguir visualizando la lista a medida que va entrando metadatos detallados en el separador Columnas. Separador General: Este separador, de forma predeterminada, contiene los campos siguientes: v Salida a enlace. Si se selecciona, enva la salida del mandato como la segunda columna del enlace de salida. Esta columna COMMAND.OUTPUT mantiene la salida de la ejecucin de mandato. v Descripcin. Opcional. Describe el objetivo del enlace de salida. Separador Columnas: Este separador contiene las definiciones de columna para los datos a los que se da salida en el enlace seleccionado. La interfaz grfica de usuario gestiona automticamente las definiciones de columna de salida. Si no selecciona No esperar al mandato y se selecciona la opcin de salida Salida a enlace, los elementos de datos COMMAND.RTNCODE y COMMAND.OUTPUT para las definiciones de columna contendrn el cdigo de retorno y la salida del mandato respectivamente. Por el contrario, el campo Derivacin carece de sentido para esta etapa.

Utilizacin de mandatos
Puede ejecutar cualquier mandato, incluyendo sus argumentos, que pueda escribir en el shell del sistema operativo, por ejemplo, scripts Perl, archivos de proceso por lotes DOS, scripts de UNIX y otros programas accionados por lneas de mandatos que no son interactivas y no precisan ninguna entrada.

Mandatos TCL y programas BASIC


Puede establecer el tipo de mandato en TCL en el separador General de la pgina Etapa para ejecutar mandatos TCL y ejecutar programas BASIC.

Mandato dsjob
Puede utilizar el mandato dsjob para llamar a otros trabajos de IBM InfoSphere DataStage desde la etapa Command. InfoSphere DataStage proporciona el programa dsjob que permite ejecutar trabajos compilados desde un mandato en lugar de desde InfoSphere DataStage. El programa dsjob tiene la sintaxis simple siguiente:

64

Gua del desarrollador de Server Job

dsjob -run [ -mode ] [ -param ] [ -warn ] [ -rows ] [ -wait ] [ -stop ] [ -jobstatus ] [ -userstatus ] trabajo de proyecto

Para ver informacin sobre la sintaxis completa, consulte InfoSphere DataStage Programmer's Guide. Nota: Si selecciona Omitir en el recuadro de dilogo Conectar con proyecto mientras inicia InfoSphere DataStage, deber utilizar las opciones de usuario y contrasea cuando utilice el mandato dsjob. Puede grabar la salida de un mandato en uno de los siguientes lugares: v El registro de InfoSphere DataStage. Este es el valor predeterminado. v En enlaces de salida. Si existen enlaces de salida, puede escribir la salida como una columna en el enlace, adems del cdigo de retorno para el mandato. El cdigo de retorno se enva automticamente como la primera columna al enlace de salida. v En un archivo. Nota: Puesto que la etapa enva el cdigo de retorno para el mandato como la primera columna de un enlace de salida, la interfaz grfica de usuario lo proporciona automticamente. Si utiliza el editor de cuadrculas estndar, deber aadir manualmente las columnas obligatorias a las definiciones de columna para el enlace de salida.

Etapas InterProcess
Una etapa InterProcess (IPC) es una etapa pasiva que proporciona un canal de comunicacin entre los procesos de IBM InfoSphere DataStage que se ejecutan simultneamente en el mismo trabajo. Permite disear trabajos que se ejecutan en sistemas SMP con grandes ventajas para el rendimiento. Para conocer las ventajas del uso de las etapas IPC, necesita obtener ms informacin sobre cmo se ejecutan realmente los trabajos de InfoSphere DataStage como procesos. Para ello, consulte Trabajos y procesos de IBM InfoSphere DataStage en la pgina 5. El enlace de salida que conecta la etapa IPC con la etapa que lee los datos puede abrirse una vez abierto el enlace de entrada conectado a la etapa que graba los datos. Puede utilizar las etapas InterProcess para unir etapas pasivas. Por ejemplo, puede utilizarlas para acelerar la transferencia de datos entre dos orgenes de datos:

Captulo 4. Etapas de trabajo de servidor

65

Figura 16. Trabajo de ejemplo

En este ejemplo, el trabajo se ejecutar como dos procesos: uno que maneja la comunicacin desde la etapa Sequential File a la etapa IPC y otro que maneja la comunicacin de la etapa IPC a la etapa ODBC. Una vez la etapa Sequential File ha abierto su enlace de salida, la etapa IPC puede empezar a pasar datos a la etapa ODBC. Si el trabajo se ejecuta en un sistema de multiprocesador, los dos procesos pueden ejecutarse simultneamente para que la transferencia sea mucho ms rpida. Tambin puede utilizar la etapa IPC para especificar explcitamente que las etapas activas conectadas se ejecuten como procesos aparte. Esto ofrece muchas ventajas de rendimiento para los sistemas de multiprocesador. Tambin puede especificar este comportamiento implcitamente activando el almacenamiento intermedio de filas entre procesos, ya sea para todo el proyecto mediante el cliente del

66

Gua del desarrollador de Server Job

administrador o individualmente para un trabajo en el recuadro de dilogo Propiedades del trabajo.


Figura 17. Trabajo de ejemplo

Utilizacin de la etapa IPC


Cuando edita una etapa IPC, aparece el recuadro de dilogo Etapa InterProcess. Este recuadro de dilogo tiene tres pginas:
Captulo 4. Etapas de trabajo de servidor

67

v Etapa. La pgina Etapa tiene dos separadores, General y Propiedades. La pgina General permite especificar una descripcin opcional de la etapa. El separador Propiedades permite especificar las propiedades de la etapa. v Entradas. La etapa IPC slo puede tener un enlace de entrada. La pgina Entradas muestra informacin sobre el enlace. v Salidas. La etapa IPC slo puede tener un enlace de salida. La pgina Salidas muestra informacin sobre el enlace.

Definicin de propiedades de la etapa IPC


El separador Propiedades permite especificar dos propiedades para la etapa IPC: v Tamao del almacenamiento intermedio. Toma como valor predeterminado 128 kb. La etapa IPC utiliza dos bloques de memoria; un bloque puede grabarse mientras se lee el otro. Esta propiedad define el tamao de cada bloque, de forma que se asigna un valor predeterminado de 256 Kb en total. v Tiempo de espera. Toma como valor predeterminado 10 segundos. Este valor ofrece un lmite de tiempo que especifica cunto tiempo esperar la etapa que un proceso se conecte a ella antes de que se exceda el tiempo de espera. Normalmente no debe modificarse, pero puede ser importante si est creando prototipos de trabajos de multiprocesador en plataformas de un solo procesador y es probable que se produzcan retardos.

Definicin de los datos de entrada de la etapa IPC


La etapa IPC puede tener un enlace de entrada. Aqu es donde se conecta el proceso que est grabando. La pgina Entradas tiene dos separadores: v General. El separador General permite especificar una descripcin opcional de la etapa. v Columnas. El separador Columnas contiene las definiciones de columna para los datos en el enlace de entrada. Normalmente se rellena con los metadatos de la etapa que se conecta en el lado de la entrada. Tambin puede Cargar una definicin de columna desde el repositorio o escribir la suya propia (y Guardar esta en el repositorio si es necesario). Tenga en cuenta que los metadatos del enlace de entrada deben ser idnticos a los metadatos del enlace de salida.

Definicin de datos de salida de la etapa IPC


La etapa IPC puede tener un enlace de salida. Aqu es donde se conecta el proceso que est leyendo. La pgina Salidas tiene dos separadores: General y Columnas. v General. El separador General permite especificar una descripcin opcional de la etapa. v Columnas. El separador Columnas contiene las definiciones de columna para los datos en el enlace de salida. Normalmente se rellena con los metadatos de la etapa que se conecta en el lado de la entrada. Tambin puede Cargar una definicin de columna desde el repositorio o escribir la suya propia (y Guardar esta en el repositorio si es necesario). Tenga en cuenta que los metadatos del enlace de salida deben ser idnticos a los metadatos del enlace de entrada.

Etapas FTP Plug-in


Como la etapa Sequential File, la etapa FTP Plug-in extrae datos desde un nico archivo de texto o los graba en un nico archivo de texto. Sin embargo, los archivos de texto a los que debe accederse mediante la etapa FTP Plug-in residen en otra mquina (posiblemente, con un sistema de archivos y convenciones de almacenamiento de archivos de caracteres distintos) de una red de comunicaciones en lugar de en un disco local.

68

Gua del desarrollador de Server Job

La etapa FTP Plug-in proporciona un rpido y eficiente acceso de archivos remoto a los usuarios utilizando servidores FTP en plataformas remotas. La etapa FTP Plug-in no precisa ninguna instalacin adicional en las plataformas remotas. De forma adicional, la etapa de conector FTP proporciona la opcin de ejecutar mandatos Before/After en la mquina remota. As, se automatizan los siguientes procesos de flujo de datos: v Antes de que empiece la transferencia de archivos. Puede utilizar el mandato Before (antes) para preparar un archivo que se debe transferir o para preparar la mquina remota que va a recibirlo. v Despus de que finalice la transferencia de archivos. Puede utilizar el mandato After (despus) para suprimir archivos temporales o para iniciar una actividad subsiguiente que utilice el archivo transferido. Cada etapa FTP Plug-in es una etapa pasiva que puede tener cualquier nmero de enlaces de entrada y de salida: v Los enlaces de entrada especifican los datos que est grabando, que es una secuencia de filas que se debe cargar en un nico archivo remoto. v Los enlaces de salida especifican los datos que est extrayendo, que es una secuencia de filas que se debe leer desde un nico archivo remoto.

Funcionalidad de la etapa FTP Plug-in


La etapa FTP Plug-in contiene las funcionalidades y ventajas siguientes: v Comparte propiedades comunes de nombre de host remoto, nombre de usuario, contrasea y va de acceso del directorio hacia o desde los archivos que se transfieren para cada instancia de etapa. v Se corresponde generalmente con una sesin de transferencia de archivos independiente para cada enlace, por lo que pueden transferirse varios archivos de forma simultnea. v Acta como cliente FTP y utiliza un protocolo de transferencia de archivos genrico con el que iniciar sesiones y transferir archivos hacia o desde cualquier servidor de transferencia de archivos. Mantiene una sesin FTP el tiempo suficiente para permitir la transferencia de grandes cantidades de datos. v Da soporte al protocolo de datos STREAM. Si se cierra una conexin de transferencia STREAM, el trabajo termina anormalmente con un mensaje de error. v Maneja las anomalas en los trabajos segn corresponda cuando se transfieren archivos incompletos. Nota: Puede especificar el nmero de filas que el trabajo debe procesar en la pgina Lmites en el cliente del Director de IBM InfoSphere DataStage. A partir del release 1.3, si limita las filas, pueden registrarse errores muy graves en el archivo de registro al final del trabajo debido a un cierre prematuro de la conexin de datos. No obstante, la transferencia de datos estar completa para el nmero de filas seleccionado. v Da soporte a un nmero especificado por el usuario de reintentos de conexin e intervalos de reintento. v Proporciona mandatos opcionales anteriores y posteriores para que se ejecuten en la mquina remota antes y despus de transferir un archivo satisfactoriamente (requiere un servidor telnet para poder utilizar todas las prestaciones en Windows). v Proporciona un nivel de rastreo opcional para diagnosticar problemas de rendimiento. v Permite leer o grabar datos ASCII o binarios. Nota: La modalidad binaria no est soportada en el lienzo del servidor paralelo. Consulte la propiedad de entrada Tipo de representacin de datos y la propiedad de salida Tipo de representacin de datos. v Utiliza las propiedades de etapa y enlace, y el tipo de columna para determinar el formato de las series de caracteres antes de la transferencia. v Permite controlar qu proceso inicia la solicitud de conexin para la transferencia de datos. v Proporciona un uso opcional de definiciones de metadatos para leer un archivo remoto.
Captulo 4. Etapas de trabajo de servidor

69

v Permite validar la existencia del archivo remoto en el cliente del Director de InfoSphere DataStage (slo para el enlace de salida). v Soporta el soporte multilingstico. La siguiente funcionalidad no est soportada: v Carga masiva para enlaces de entrada de secuencia v Bsquedas con clave en una etapa de transferencia de archivos v Procedimientos almacenados

Terminologa
En la lista siguiente se describen los trminos de FTP Plug-in utilizados en este documento: Trmino Descripcin mandato after El mandato que se ejecuta en la mquina remota utilizando una sesin de telnet si la transferencia ha finalizado. mandato before El mandato que se ejecuta en la mquina remota utilizando una sesin de telnet antes de iniciar la transferencia. FTP Protocolo de transferencia de archivos. Una prestacin de transferencia interactiva de archivos que se utiliza a menudo en las redes TCP/IP.

retrotraer Cancela todos los cambios de E/S de archivo realizados durante una transaccin. telnet El nombre de una sesin de protocolo que acta como una emulacin de terminal remoto estndar con las comunicaciones con el host a travs de una red. transaccin Una secuencia de operaciones de E/S de archivo que se trata como una operacin lgica en relacin con la recuperacin y la visibilidad para otros usuarios.

Instalacin de la etapa
Para especificar retrotracciones de transacciones, compromisos o el proceso anterior/posterior en el servidor Windows, debe proporcionar primero un servidor telnet distinto del servidor telnet de UniVerse.

Propiedades
Las tablas de las siguientes secciones incluyen las siguientes cabeceras de columna: v Solicitud es el texto que el diseador de trabajo puede ver en la interfaz de usuario del editor de etapas. v Tipo es el tipo de datos de la propiedad. v Valor predeterminado es el texto que se utiliza si el diseador del trabajo no suministra ningn valor. v Descripcin describe las propiedades.

70

Gua del desarrollador de Server Job

Propiedades de etapa
La etapa FTP Plug-in da soporte a las siguientes propiedades de etapa:
Solicitud Nombre del servidor Tipo Serie Predeterminada Ninguno Descripcin Necesario. El nombre de la mquina de host en la que reside el archivo para el servidor FTP. Necesario. Nmero de puerto del servidor FTP de la mquina remota. Necesario. Nmero de puerto del servidor telnet de la mquina remota. Necesario. Nombre de usuario para iniciar la sesin en la mquina remota. La contrasea para el usuario especificado. Es necesaria si la mquina remota utiliza una contrasea para el "Nombre de usuario." El nombre de cuenta para el inicio de sesin de FTP remoto. Slo es necesario si la mquina remota necesita informacin de cuentas de usuario durante el proceso de inicio de sesin. Opcional. Controla el tipo de informacin de rastreo que se aade al registro. Utilice uno de los siguientes niveles de rastreo: 0 Ningn rastreo 1 Propiedades de la etapa del informe Reintentos Largo 3 Opcional. El nmero de reintentos si falla la conexin. Opcional. Nmero de segundos que se debe esperar entre reintentos si la conexin falla. Necesaria si se utilizan servicios de telnet. Nmero total de solicitudes previstas que se reciben durante el proceso de inicio de sesin en el servidor de telnet.
Captulo 4. Etapas de trabajo de servidor

Puerto de FTP remoto

Largo

21

Puerto Telnet remoto

Largo

23

Nombre de usuario

Serie

Ninguno

Contrasea del usuario

Serie

Ninguno

Nombre de cuenta

Serie

Ninguno

Nivel de rastreo

Largo

Intervalo de reintentos

Largo

15

Nmero de solicitudes de Telnet

Serie

71

Solicitud Solicitud de Telnet 1

Tipo Serie

Predeterminada Inicio de sesin

Descripcin Necesaria si se utilizan servicios de telnet. La serie literal (no distingue entre maysculas y minsculas) que enva el servidor de telnet y solicita al proceso de IBM InfoSphere DataStage los datos de inicio de sesin. Necesaria si se utilizan servicios de telnet. El nombre de usuario de telnet para iniciar sesin en la sesin de telnet. Necesaria si se utilizan servicios de telnet. La serie literal (no distingue entre maysculas y minsculas) que enva el servidor de telnet y solicita al proceso de InfoSphere DataStage los datos de contrasea. Necesaria si se utilizan servicios de telnet. Contrasea de telnet del usuario de telnet especificado. Las solicitudes que son necesarias para conectarse a un sistema de destino mediante telnet, adems del inicio de sesin y la contrasea. Las repuestas que son necesarias para conectarse a un sistema de destino mediante telnet, adems del inicio de sesin y la contrasea. Nmero de milisegundos que se esperar a que finalicen los mandatos anterior (Before) y posterior (After) de Telnet.

Respuesta de Telnet 1

Serie

Ninguno

Solicitud de Telnet 2

Serie

Contrasea

Respuesta de Telnet 2

Serie

Ninguno

Solicitud de Telnet n

Serie

Ninguno

Respuesta de Telnet n

Serie

Ninguno

Tiempo de espera de mandatos

Int

50

72

Gua del desarrollador de Server Job

Propiedades del enlace de entrada


La tabla siguiente lista las propiedades del enlace de entrada en el editor de cuadrcula:
Tabla 8. Propiedades del enlace de entrada Solicitud Va de acceso remota Tipo Serie Predeterminada Ninguno Descripcin Opcional. Nombre de la va de acceso del directorio de trabajo en la mquina remota donde estn ubicados los archivos que se deben recuperar o enviar. Necesario. Nombre del archivo en la mquina remota que se debe recuperar o enviar. Necesario. Controla cmo se leen o se graban los datos del archivo remoto. Para la representacin ASCII, la transferencia de datos utiliza el NVT-ASCII estndar, sobre todo para archivos de texto. Para la representacin binaria, los datos se transfieren en bits continuos como datos IMAGE. Debe establecer las "Columnas de anchura fija" en S. Nota: La modalidad binaria no se soporta cuando la etapa se ejecuta en el lienzo paralelo. Para transferir datos en modalidad binaria, utilice los tipos de datos binarios o varbinarios con el "Tipo de representacin de datos" fijado en ASCII. Finalizacin de lnea Lista [CR] [LF] (Terminacin de estilo DOS) Especifica la secuencia de terminacin de fila (fin de la lnea) en el archivo remoto. Si "Tipo de representacin de datos" se establece en ASCII, los valores vlidos son "sin terminacin" (no termination) y [CR] [LF]. Columnas de anchura fija Serie No Necesario. Indica si los datos del archivo remoto pueden estar con columnas de anchura fija.

Nombre de archivo remoto

Serie

Ninguno

Tipo de representacin de datos

Lista

ASCII

Captulo 4. Etapas de trabajo de servidor

73

Tabla 8. Propiedades del enlace de entrada (continuacin) Solicitud Espacios entre columnas Tipo Largo Predeterminada 0 Descripcin El nmero de espacios entre las columnas de anchura fija en el archivo remoto. Es necesario si "Columnas con anchura fija" est establecido en S. Es necesario si "Columnas con anchura fija" est establecido en No. El delimitador que separa los campos de datos en el archivo remoto. Puede entrar un nico carcter sin comillas o el valor ASCII del carcter que desea utilizar. Opcional y vlido solamente si "Columnas con anchura fija" est establecido en No. El carcter nico se utiliza para incluir un valor de datos que contiene un carcter delimitador como datos. Tambin puede entrar el valor ASCII para el carcter que desee utilizar. Puede suprimir "Carcter de comillas" si no entra ningn valor. Necesario. El nico carcter entrado para ser interpretado como el carcter de escape. Opcional. Especifica la serie que debe interpretarse como el valor vaco de SQL. Es necesario si "Tipo de representacin de datos" est establecido en ASCII. Especifica si se debe transferir la primera lnea al archivo remoto (es decir, es posible que contenga nombres de columnas). Necesario. Indica si desea omitir la ltima lnea nueva al final de los datos al enviarlos a la mquina remota.

Delimitador de columna

Char

, (coma)

Carcter de comillas

Char

" (comillas dobles)

Carcter de escape

Char

\ (barra inclinada invertida)

Serie vaca

Serie

Ninguno

Nombres de columnas de la Serie primera lnea

No

Omitir la ltima lnea nueva

Serie

No

74

Gua del desarrollador de Server Job

Tabla 8. Propiedades del enlace de entrada (continuacin) Solicitud Anexar a archivo Tipo Serie Predeterminada No Descripcin Opcional. Indica si los datos deben colocarse en el archivo remoto en modalidad de anexo o de sobrescritura. S indica "anexo" con respecto al archivo existente. No indica que se sobrescribir el archivo. Opcional. Indica si el "Mandato de copia de seguridad de Telnet" debe ejecutarse antes de continuar con el trabajo. Opcional. Especifica el mandato de Telnet que debe ejecutarse en la mquina remota antes de que se grabe el trabajo en el archivo remoto. Este mandato de Telnet slo se ejecuta si "Realizar copia de seguridad del archivo" est fijado en S. Utilice este mandato para crear copias de seguridad del archivo. Opcional. El mandato de Telnet que se debe ejecutar en la mquina remota antes de iniciar un trabajo. Opcional. Especifica el mandato de Telnet que debe ejecutarse en la mquina remota despus de completar un trabajo. Opcional. Especifica el mandato de Telnet que debe ejecutarse antes de iniciar la transferencia de archivos a la mquina remota. Utilice este mandato para crear copias temporales de los archivos. Opcional. Especifica el mandato de Telnet que debe ejecutarse despus de una transferencia de datos satisfactoria. Utilice este mandato para suprimir cualquier archivo temporal que se haya creado.

Realizar copia de seguridad Serie del archivo

No

Mandato de copia de seguridad de Telnet

Serie

Ninguno

Mandato anterior (Before) de Telnet

Serie

Ninguno

Mandato posterior (After) de Telnet

Serie

Ninguno

Mandato de iniciar transaccin

Serie

Ninguno

Mandato de confirmar transaccin

Serie

Ninguno

Captulo 4. Etapas de trabajo de servidor

75

Tabla 8. Propiedades del enlace de entrada (continuacin) Solicitud Mandato de retrotraccin de transacciones Tipo Serie Predeterminada Ninguno Descripcin Opcional. Especifica el mandato de Telnet que debe ejecutarse si se produce un error al enviar el archivo a la mquina remota, o si utiliza el cliente del Director para restablecer el trabajo. Utilice este mandato para restaurar cualquier archivo de la copia temporal si se produce una anomala o una terminacin anormal. Especifica el proceso que inicia la conexin para la transferencia de datos. Si se establece en Activa, el servidor FTP inicia las conexiones. Si se establece en Pasiva, las conexiones se inician desde el sistema principal donde se ha instalado la capa de motor. Permite almacenar archivos en sistemas principales que se encuentran fuera del cortafuegos basado en un router. Sistemas OpenVMS digitales. Establzcalo en Activos para los enlaces de entrada de forma que el servidor FTP inicie la conexin para la transferencia de datos. De lo contrario, no se aceptarn los datos.

Modalidad de conexin de datos de FTP

Lista

Pasiva

76

Gua del desarrollador de Server Job

Tabla 8. Propiedades del enlace de entrada (continuacin) Solicitud Nivel de rastreo de enlace Tipo Largo Predeterminada 0 Descripcin Opcional. Controla el tipo de informacin de rastreo que se aade al registro. Los niveles de rastreo disponibles son: 0 Ningn rastreo 1 Propiedades de enlace 2 Rendimiento 4 Mensajes de FTP 8 Mensajes de Telnet 16 Rastreo de funcin 32 Volcado de datos de Telnet Puede combinar los niveles de rastreo. Por ejemplo, un nivel de rastreo de 3 significa que se aadirn las propiedades del enlace y los mensajes de rendimiento en el registro. Longitud del Largo almacenamiento intermedio 4096 Necesario. Establece la longitud (en fragmentos superiores a 512 bytes) de los almacenamientos intermedios de recepcin y de envo del FTP para filas de datos antes de ser enviadas o recuperadas.

Puede especificar cualquier mandato de UNIX para las siguientes propiedades de enlace: Telnet despus de mandato, Mandato de copia de seguridad de Telnet, Mandato de inicio de transaccin, Mandato de confirmacin de transaccin o Mandato de retrotraccin de transaccin. Por ejemplo, el siguiente mandato de UNIX copia un archivo a otro archivo en un directorio diferente:
cp /nombre_va_acceso/nombre_archivo1 /nombre_va_acceso2/nombre_archivo2

Propiedades del enlace de salida


La tabla siguiente lista las propiedades del enlace de salida en el editor de cuadrcula:
Tabla 9. Propiedades del enlace de salida Solicitud Va de acceso remota Tipo Serie Predeterminada Ninguno Descripcin Opcional. Nombre de la va de acceso del directorio de trabajo en la mquina remota donde estn ubicados los archivos que se deben recuperar o enviar. Necesario. Nombre del archivo en la mquina remota que se debe recuperar o enviar.

Nombre de archivo remoto

Serie

Ninguno

Captulo 4. Etapas de trabajo de servidor

77

Tabla 9. Propiedades del enlace de salida (continuacin) Solicitud Tipo de representacin de datos Tipo Lista Predeterminada ASCII Descripcin Necesario. Controla cmo se leen o se graban los datos del archivo remoto. Para la representacin ASCII, la transferencia de datos utiliza el NVT-ASCII estndar, sobre todo para archivos de texto. Para la representacin binaria, los datos se transfieren en bits continuos como datos IMAGE. Debe establecer las "Columnas de anchura fija" en S. Nota: La modalidad binaria no se soporta cuando la etapa se ejecuta en el lienzo paralelo. Para transferir datos en modalidad binaria, utilice los tipos de datos binarios o varbinarios con el "Tipo de representacin de datos" fijado en ASCII. Comprobar datos con metadatos Lista No Establezca S para utilizar definiciones de metadatos a fin de leer datos del archivo remoto en lugar de utilizar un terminador de lnea para identificar el final de una fila. Se leern los datos hasta que se agoten los metadatos. Para los datos de anchura fija, esto significa el total de la longitud de las columnas ms los espacios.Para los datos delimitados, esto significa el nmero de columnas. Si se establece en No, el final de la fila viene determinado por la secuencia de fin de la lnea [CR] [LF]

78

Gua del desarrollador de Server Job

Tabla 9. Propiedades del enlace de salida (continuacin) Solicitud Finalizacin de lnea Tipo Lista Predeterminada [CR] [LF] (Terminacin de estilo DOS) Descripcin Especifica la secuencia de terminacin de fila (fin de la lnea) en el archivo remoto. Si las "Columnas de anchura fija" se establecen en No, utilice el valor [CR] [LF]. Si las "Columnas de anchura fija" se establecen en S y el "Tipo de representacin de datos" se establece en ASCII, los valores vlidos son sin terminacin ni [CR] [LF] (terminador de estilo DOS). Si se establece en "Ninguna terminacin", "Comprobar datos con metadatos" debe estar fijado en S. Columnas de anchura fija Serie No Necesario. Indica si los datos del archivo remoto pueden estar con columnas de anchura fija. El nmero de espacios entre las columnas de anchura fija en el archivo remoto. Es necesario si "Columnas con anchura fija" est establecido en S. Es necesario si "Columnas con anchura fija" est establecido en No. El delimitador que separa los campos de datos en el archivo remoto. Puede entrar un nico carcter sin comillas o el valor ASCII del carcter que desea utilizar. Opcional y vlido solamente si "Columnas con anchura fija" est establecido en No. El carcter nico se utiliza para incluir un valor de datos que contiene un carcter delimitador como datos. Tambin puede entrar el valor ASCII para el carcter que desee utilizar. Puede suprimir "Carcter de comillas" si no entra ningn valor.

Espacios entre columnas

Largo

Delimitador de columna

Char

, (coma)

Carcter de comillas

Char

" (comillas dobles)

Captulo 4. Etapas de trabajo de servidor

79

Tabla 9. Propiedades del enlace de salida (continuacin) Solicitud Carcter de escape Tipo Char Predeterminada \ (barra inclinada invertida) Descripcin Necesario. El nico carcter entrado para ser interpretado como el carcter de escape. Opcional. Especifica la serie que debe interpretarse como el valor vaco de SQL. Es necesario si "Tipo de representacin de datos" est establecido en ASCII. Especifica si se debe transferir la primera lnea al archivo remoto (es decir, es posible que contenga nombres de columnas). Opcional. El mandato de Telnet que se debe ejecutar en la mquina remota antes de iniciar un trabajo. Opcional. Especifica el mandato de Telnet que debe ejecutarse en la mquina remota despus de completar un trabajo. Especifica el proceso que inicia la conexin para la transferencia de datos. Si se establece en Activa, el servidor FTP inicia las conexiones. Si se establece en Pasiva, las conexiones se inician desde el sistema principal donde se ha instalado la capa de motor. Permite almacenar archivos en sistemas principales que se encuentran fuera del cortafuegos basado en un router.

Serie vaca

Serie

Ninguno

Nombres de columnas de la Serie primera lnea

No

Mandato anterior (Before) de Telnet

Serie

Ninguno

Mandato posterior (After) de Telnet

Serie

Ninguno

Modalidad de conexin de datos de FTP

Lista

Activa

80

Gua del desarrollador de Server Job

Tabla 9. Propiedades del enlace de salida (continuacin) Solicitud Puerto de datos de FTP Tipo Lista Predeterminada Ninguno Descripcin Opcional. El nmero de puerto exclusivo en el que se reciben datos desde el servidor FTP de la mquina remota. El servidor FTP de la mquina remota se conecta a este puerto para transferir el archivo remoto. Si no especifica un valor o dicho valor es 0, la etapa configura automticamente un nmero de puerto disponible para el usuario. Si especifica un valor, ste debe estar entre el 1025 y el 4999. Para obtener ms informacin acerca del modelo de FTP, consulte el protocolo de transferencia de archivos (FTP) 959 RFC estndar. Nivel de rastreo de enlace Largo 0 Opcional. Controla el tipo de informacin de rastreo que se aade al registro. Los niveles de rastreo disponibles son: 0 Ningn rastreo 1 Propiedades de enlace 2 Rendimiento 4 Mensajes de FTP 8 Mensajes de Telnet 16 Rastreo de funcin 32 Volcado de datos de Telnet Puede combinar los niveles de rastreo. Por ejemplo, un nivel de rastreo de 3 significa que se aadirn las propiedades del enlace y los mensajes de rendimiento en el registro. Longitud del Largo almacenamiento intermedio 4096 Necesario. Establece la longitud (en fragmentos superiores a 512 bytes) de los almacenamientos intermedios de recepcin y de envo del FTP para filas de datos antes de ser enviadas o recuperadas.

Captulo 4. Etapas de trabajo de servidor

81

Representacin de datos ASCII o binaria


Representacin de datos ASCII para los enlaces de salida. Si establece Tipo de representacin de datos en ASCII: v El servicio FTP se configura para el tipo de representacin ASCII. El remitente (host remoto) convierte los datos de su representacin en caracteres internos, es decir, ASCII o EBCDIC, a la representacin NVT-ASCII estndar. Para obtener ms informacin sobre la representacin de datos y el almacenamiento FTP, consulte el protocolo de transferencia de archivos (FTP) 959 RFC estndar. v La secuencia de datos recibida del host remoto se analiza en filas de datos explorando los datos para la secuencia de fin de la lnea [CR] [LF]. v La fila de datos se contina analizando en datos de columna. El mtodo de anlisis utilizado depende del valor de Columnas de anchura fija. Si se establece en S, los metadatos de columna determinan los tamaos de archivo. Si se establece en No, la fila se analiza en columnas explorando en busca del delimitador de columna. Representacin de datos ASCII para los enlaces de entrada. Si establece Tipo de representacin de datos en ASCII: v El servicio FTP se configura para el tipo de representacin ASCII. El destinatario (host remoto) convierte los datos del formato ASCII a su propio formato interno. v Los datos de columna (por fila) se colocan en una fila formateada. El formato depende del valor de Columnas de anchura fija. Si se establece en S, los datos se colocan en un almacenamiento intermedio de caracteres. Los metadatos de columna determinan el tamao asignado por columna. Si los datos de columna son mayores que la anchura de columna, los datos se truncan a la anchura de columna de los metadatos y se muestra un mensaje de aviso. Si se establece en No, los datos se colocan en un almacenamiento intermedio de caracteres, separador por el delimitador de la columna configurada. v Se aaden los caracteres de terminacin [CR] [LF] a cada fila de datos. Los datos se envan a la mquina remota para almacenarse como un archivo de texto. Representacin de datos binaria para los enlaces de salida. Si establece Tipo de representacin de datos en Binaria: v Columnas de anchura fija debe establecerse en S. v El servicio FTP se configura para el tipo de representacin IMAGE. Los datos se envan desde la mquina remota como bits contiguos sin conversin de caracteres. v La secuencia de datos recibida de la mquina remota se analiza en filas de datos determinando la longitud total de la fila. La longitud de la fila se calcula mediante la acumulacin de la anchura de cada columna y los valores asociados con Espacios entre columnas y Finalizacin de lnea. v La fila de datos se contina analizando en datos de columna utilizando las mismas propiedades y metadatos. Nota: La modalidad binaria no est soportada en el lienzo del servidor paralelo. Consulte la propiedad de entrada Tipo de representacin de datos y la propiedad de salida Tipo de representacin de datos. Representacin de datos binaria para los enlaces de entrada. Si establece Tipo de representacin de datos en Binaria: v Columnas de anchura fija debe establecerse en S. v El servicio FTP se configura para el tipo de representacin IMAGE. Los datos se envan como bits contiguos sin conversin de caracteres. v Los datos de columna por fila se colocan en un almacenamiento intermedio de caracteres. Los metadatos de columna determinan el tamao asignado por columna. Si los datos de columna son mayores que la anchura de columna, los datos se truncan a la anchura de columna de los metadatos y se muestra un mensaje de aviso.

82

Gua del desarrollador de Server Job

v Se aaden los caracteres de terminacin especificados por Finalizacin de lnea a cada fila de datos y se envan a la mquina remota. Nota: La modalidad binaria no est soportada en el lienzo del servidor paralelo. Consulte la propiedad de entrada Tipo de representacin de datos y la propiedad de salida Tipo de representacin de datos.

Etapas Link Collector


En estos temas se describe cmo utilizar una etapa Link Collector en el diseo del trabajo. La etapa Link Collector es una etapa activa que utiliza hasta 64 entradas y permite recopilar datos de los enlaces y direccionarlos a un enlace de salida individual. La etapa espera que el enlace de salida utilice los mismos metadatos que los enlaces de entrada. La etapa Link Collector puede utilizarse con una etapa Link Partitioner para aprovechar un sistema multiprocesador y procesar los datos en paralelo. La etapa Link Partitioner particiona los datos y los procesa en paralelo y, a continuacin, la etapa Link Collector vuelve a recopilarlos conjuntamente antes de grabarlos en un nico destino. Para conocer las ventajas, consulte Trabajos y procesos de IBM InfoSphere DataStage en la pgina 5 para ver cmo se ejecutan los trabajos de IBM InfoSphere DataStage como procesos. El siguiente diagrama ilustra cmo puede utilizarse la etapa Link Collector en un trabajo de la siguiente manera:

Para que este trabajo pueda compilarse y ejecutarse segn lo previsto en un sistema multiprocesador, debe tener activado el almacenamiento intermedio entre procesos, ya sea a nivel de proyectos utilizando el cliente del Administrador o a nivel de trabajos en el recuadro de dilogo Propiedades del trabajo. Los archivos temporales generados por esta etapa se colocan en el directorio especificado por la variable de entorno TEMP. Utilice el cliente del Administrador para establecer la variable TEMP en cada proyecto.

Utilizacin de una etapa Link Collector


Cuando edita una etapa Link Collector, aparece el recuadro de dilogo Etapa Link Collector. Este recuadro de dilogo tiene tres pginas: v Etapa. Muestra el nombre de la etapa que se est editando. Esta pgina tiene un separador General que contiene una descripcin opcional de la etapa y los nombres de las rutinas anterior y posterior.
Captulo 4. Etapas de trabajo de servidor

83

Para obtener ms informacin sobre estas rutinas, consulte Subrutinas anteriores y posteriores a la etapa. Tambin tiene un separador Propiedades que permite especificar propiedades que afectan al comportamiento de la etapa. Para obtener detalles, consulte Definicin de propiedades de la etapa Link Collector. v Entradas. Especifica las definiciones de columna para los enlaces de entrada de datos. v Salidas. Especifica las definiciones de columna para el enlace de salida de datos. Pulse Aceptar para cerrar este recuadro de dilogo. Los cambios se guardan cuando se guarda el trabajo.

Subrutinas anteriores y posteriores a la etapa


El separador General de la pgina Etapa contiene campos opcionales que permiten definir las rutinas que se van a utilizar, que se ejecutan antes o despus de que la etapa haya procesado los datos. v Subrutina anterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta antes de que la etapa empiece a procesar datos. Por ejemplo, se puede especificar una rutina que prepare los datos antes de que se inicie el proceso. v Subrutina posterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta despus de que la etapa haya procesado los datos. Por ejemplo, se puede especificar una rutina que enve un mensaje electrnico cuando la etapa haya finalizado. Seleccione una rutina en la lista. Esta lista contiene todas las rutinas definidas como una Subrutina anterior/posterior en la carpeta Rutinas del rbol de repositorio. Entre un valor apropiado para el argumento de entrada de la rutina en el campo Valor de entrada. Si elige una rutina definida en el repositorio, que se ha editado pero que no se ha compilado, un mensaje de aviso le recordar que debe compilar la rutina cuando cierre el recuadro de dilogo Etapa Link Collector. Un cdigo de retorno 0 de la rutina indica que ha resultado satisfactoria y cualquier otro cdigo indica que la rutina ha resultado anmala y provoca un error muy grave cuando se ejecuta el trabajo. Si ha instalado o importado un trabajo, es posible que el campo Subrutina anterior a la etapa o Subrutina posterior a la etapa haga referencia a una rutina que no exista en el sistema. En tal caso, aparecer un mensaje de aviso cuando cierre el recuadro de dilogo Etapa Link Collector. Debe instalar o importar la rutina "ausente" o seleccionar una rutina alternativa que utilizar.

Definicin de propiedades de la etapa Link Collector


El separador Propiedades permite especificar dos propiedades para la etapa Link Collector. v Algoritmo de coleccin. Utilice esta propiedad para especificar el mtodo que utiliza la etapa para recopilar datos. Elija entre: Iteracin cclica. Este es el mtodo predeterminado. Utilizando el mtodo de iteracin cclica, la etapa lee una fila de cada enlace de entrada consecutivamente. Ordenar/Fusionar. Utilizando el mtodo de ordenar/fusionar, la etapa lee diversas entradas ordenadas y graba una sola salida ordenada. v Clave de orden. Esta propiedad slo es significativa si ha seleccionado un algoritmo de coleccin de Ordenar/Fusionar. Define cmo se sabe que se va a ordenar cada uno de los conjuntos de datos particionados y cmo se ordenar la salida fusionada. La clave tiene el formato siguiente:
Nombre_columna {orden_clasificacin] [,Nombre_columna [orden_clasificacin]]...

Nombre_columna especifica una o varias columnas que se deben ordenar. orden_clasificacin define el orden de clasificacin de la siguiente manera:

84

Gua del desarrollador de Server Job

Orden ascendente a asc ascendente A ASC ASCENDING

Orden descendente d dsc descendente D DSC DESCENDING

En un entorno de soporte multilingstico, el convenio de clasificacin del entorno local afectar al orden de clasificacin. El convenio de clasificacin predeterminado se establece en el cliente del Administrador, pero puede establecerse para trabajos individuales en el recuadro de dilogo Propiedades del trabajo. Por ejemplo:
FIRSTNAME d, SURNAME D

Especifica que las filas se ordenan segn la columna FIRSTNAME y la columna SURNAME en orden descendente.

Definicin de datos de entrada de etapa Link Collector


La etapa Link Collector puede tener hasta 64 enlaces de entrada. Aqu es donde llegan los datos que se van a recopilar. La lista Nombre de entrada de la pgina Entradas permite seleccionar cul de los 64 enlaces est buscando. La pgina Entradas tiene dos separadores: v General. El separador General permite especificar una descripcin opcional de la etapa. v Columnas. El separador Columnas contiene las definiciones de columna para los datos en los enlaces de entrada. Normalmente se rellena con los metadatos de las etapas que se conectan en el lado de la entrada. Tambin puede Cargar una definicin de columna desde el repositorio o escribir la suya propia (y Guardar esta en el repositorio si es necesario). Tenga en cuenta que los metadatos de todos los enlaces de entrada deben ser idnticos, y a la vez coincidir con los metadatos del enlace de salida.

Definicin de datos de salida de etapa Link Collector


La etapa Link Collector puede tener un enlace de salida. La pgina Salidas tiene dos separadores: General y Columnas. v General. El separador General permite especificar una descripcin opcional de la etapa. v Columnas. El separador Columnas contiene las definiciones de columna para los datos en el enlace de salida. Puede Cargar una definicin de columna desde el repositorio o escribir la suya propia (y Guardar esta en el repositorio si es necesario). Tenga en cuenta que los metadatos del enlace de salida deben ser idnticos a los metadatos de los enlaces de entrada.

Etapas Link Partitioner


En estos temas se describe cmo utilizar una etapa Link Partitioner en el diseo del trabajo. La etapa Link Partitioner es una etapa activa que utiliza una entrada y permite distribuir las filas particionadas entre un mximo de 64 enlaces de salida. La etapa espera que los enlaces de salida utilicen los mismos metadatos que el enlace de entrada.

Captulo 4. Etapas de trabajo de servidor

85

El particionamiento de los datos permite aprovechar las ventajas de un sistema multiprocesador y procesar los datos en paralelo. Puede utilizarse con la etapa Link Collector para particionar datos, procesarlos en paralelo y volver a recopilarlos conjuntamente antes de grabarlos en un nico destino. Para conocer las ventajas, consulte Trabajos y procesos de IBM InfoSphere DataStage en la pgina 5 para ver cmo se ejecutan los trabajos de IBM InfoSphere DataStage como procesos. El siguiente diagrama ilustra cmo puede utilizarse la etapa Link Partitioner en un trabajo de la siguiente manera.

Para que este trabajo pueda compilarse y ejecutarse segn lo previsto en un sistema multiprocesador, debe tener activado el almacenamiento intermedio entre procesos, ya sea a nivel de proyectos utilizando el cliente del Administrador o a nivel de trabajos en el recuadro de dilogo Propiedades del trabajo. Los archivos temporales generados por esta etapa se colocan en el directorio especificado por la variable de entorno TEMP. Utilice el cliente del Administrador para establecer la variable TEMP en cada proyecto.

Utilizacin de una etapa Link Partitioner


Cuando edita una etapa Link Partitioner, aparece el recuadro de dilogo Etapa Link Partitioner. Este recuadro de dilogo tiene tres pginas: v Etapa. Muestra el nombre de la etapa que se est editando. Esta pgina tiene un separador General que contiene una descripcin opcional de la etapa y los nombres de las rutinas anterior y posterior. Para obtener ms informacin sobre estas rutinas, consulte Subrutinas anteriores y posteriores a la etapa. Tambin tiene un separador Propiedades que permite especificar propiedades que afectan al comportamiento de la etapa. Para obtener detalles, consulte Definicin de propiedades de la etapa Link Partitioner en la pgina 87. v Entradas. Especifica las definiciones de columna para el enlace de entrada de datos. v Salidas. Especifica las definiciones de columna para los enlaces de salida de datos. Pulse Aceptar para cerrar este recuadro de dilogo. Los cambios se guardan cuando se guarda el trabajo.

Subrutinas anteriores y posteriores a la etapa


El separador General de la pgina Etapa contiene campos opcionales que permiten definir las rutinas que se van a utilizar que se ejecutan antes o despus de que la etapa haya procesado los datos.

86

Gua del desarrollador de Server Job

v Subrutina anterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta antes de que la etapa empiece a procesar datos. Por ejemplo, se puede especificar una rutina que prepare los datos antes de que se inicie el proceso. v Subrutina posterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta despus de que la etapa haya procesado los datos. Por ejemplo, se puede especificar una rutina que enve un mensaje electrnico cuando la etapa haya finalizado. Seleccione una rutina en la lista. Esta lista contiene todas las rutinas definidas como una Subrutina anterior/posterior en la carpeta Rutinas del rbol de repositorio. Entre un valor apropiado para el argumento de entrada de la rutina en el campo Valor de entrada. Si elige una rutina definida en el repositorio, que se ha editado pero que no se ha compilado, un mensaje de aviso le recordar que debe compilar la rutina cuando cierre el recuadro de dilogo Etapa Link Partitioner. Un cdigo de retorno 0 de la rutina indica que ha resultado satisfactoria y cualquier otro cdigo indica que la rutina ha resultado anmala y provoca un error muy grave cuando se ejecuta el trabajo. Si ha instalado o importado un trabajo, es posible que el campo Subrutina anterior a la etapa o Subrutina posterior a la etapa haga referencia a una rutina que no exista en el sistema. En tal caso, aparecer un mensaje de aviso cuando cierre el recuadro de dilogo Etapa Link Partitioner. Debe instalar o importar la rutina "ausente" o seleccionar una rutina alternativa que utilizar.

Definicin de propiedades de la etapa Link Partitioner


El separador Propiedades permite especificar dos propiedades para la etapa Link Partitioner. v Algoritmo de particionamiento. Utilice esta propiedad para especificar el mtodo que utiliza la etapa para particionar datos. Elija entre: Iteracin cclica. Este es el mtodo predeterminado. Utilizando el mtodo de iteracin cclica, la etapa grabar cada fila entrante en uno de los enlaces de salida sucesivamente. Aleatorio. Mediante este mtodo, la etapa utilizar un generador de nmeros aleatorios para distribuir filas entrantes equitativamente entre todos los enlaces de salida. Hash. Mediante este mtodo, la etapa aplica una funcin hash a uno o varios valores de columna de entrada para determinar a qu enlace de salida se pasa la fila. Mdulo. Mediante este mtodo, la etapa aplica una funcin de mdulo a un valor de columna de entrada entero para determinar a qu enlace de salida se pasa la fila. v Clave de particionamiento. Esta propiedad slo es significativa si ha seleccionado un algoritmo de particionamiento Hash o Mdulo. Para el algoritmo Hash, especifique uno o varios nombres de columna separados por comas. Estas claves se concatenan y se aplica una funcin hash para determinar el enlace de salida de destino. Para el algoritmo Mdulo, especifique un solo nombre de columna que identifique una columna numrica de entero. El valor de esta columna determina el enlace de salida de destino.

Definicin de datos de entrada de etapa Link Partitioner


La etapa Link Partitioner puede tener un enlace de entrada. Aqu es donde llegan los datos que se van a particionar. La pgina Entradas tiene dos separadores: v General. El separador General permite especificar una descripcin opcional de la etapa. v Columnas. El separador Columnas contiene las definiciones de columna para los datos en el enlace de entrada. Normalmente se rellena con los metadatos de la etapa que se conecta en el lado de la entrada. Tambin puede Cargar una definicin de columna desde el repositorio o escribir la suya propia (y
Captulo 4. Etapas de trabajo de servidor

87

Guardar esta en el repositorio si es necesario). Tenga en cuenta que los metadatos del enlace de entrada deben ser idnticos a los metadatos de los enlaces de salida.

Definicin de datos de salida de etapa Link Partitioner


La etapa Link Partitioner puede tener hasta 64 enlaces de salida. Los datos particionados fluyen entre estos enlaces. La lista Nombre de salida de la pgina Salidas permite seleccionar cul de los 64 enlaces est buscando. La pgina Salidas tiene dos separadores: v General. El separador General permite especificar una descripcin opcional de la etapa. v Columnas. El separador Columnas contiene las definiciones de columna para los datos en el enlace de salida. Puede Cargar una definicin de columna desde el repositorio o escribir la suya propia (y Guardar esta en el repositorio si es necesario). Tenga en cuenta que los metadatos del enlace de salida deben ser idnticos a los metadatos del enlace de entrada. De esta forma, los metadatos son idnticos para todos los enlaces de salida.

Etapas Merge
La etapa Merge permite combinar dos archivos secuenciales en uno o varios enlaces de salida. Merge, una etapa pasiva, no tiene enlaces de entrada, pero tiene al menos un enlace de salida. Utilice la interfaz grfica de usuario (GUI) para definir la operacin de unin que se utiliza para fusionar dos archivos. Los dos archivos de entrada que se fusionarn deben ser archivos de texto secuenciales.

Funcionalidad Merge stage


La etapa Merge da soporte a la siguiente funcionalidad: v Combinacin de dos archivos de texto secuenciales. v Eleccin entre varios tipos de uniones diferentes. v Soporte para soporte multilingstico slo en la modalidad automtica.

Utilizacin de la etapa Merge


A continuacin, se proporciona una serie de tareas necesarias para fusionar dos archivos, que se muestran en el orden en el que deben ejecutarse. Debe especificar: v Los directorios del archivo de entrada y el archivo de trabajo, y la informacin del archivo de registro. Consulte El separador General de la pgina Etapa en la pgina 89. v Los nombres de los archivos que se van a fusionar. Consulte El separador General. v El tipo de unin. Consulte Tipo de unin. v El nivel de rastreo. Consulte Nivel de rastreo. v El formato del archivo de entrada. Consulte Separador Propiedades de archivo de entrada en la pgina 91. v Las columnas el archivo de entrada. Consulte Separadores Columnas del primer y del segundo archivo. v Dnde se guarda la informacin de la columna. Consulte El recuadro de dilogo Guardar definicin de tabla. v Las claves de la unin. Consulte El separador Correlacin en la pgina 94. v El contenido de las columnas de salida. Consulte Especificacin de columnas de salida en la pgina 94. v El nombre y el formato de las columnas de archivo de salida. Consulte El separador Columnas en la pgina 95.

88

Gua del desarrollador de Server Job

El separador General de la pgina Etapa


El separador General de la pgina Etapa define los directorios del archivo de entrada y el archivo de trabajo, y la informacin del archivo de registro. El separador General contiene los campos siguientes: v Va de acceso del directorio del primer archivo. La va de acceso y el directorio del primer archivo secuencial. v ... (Botn Examinar). Si pulsa ..., se abre el recuadro de dilogo Seleccionar desde servidor. Consulte Recuadro de dilogo Seleccionar desde servidor. v Va de acceso del directorio del segundo archivo. La va de acceso y el directorio del segundo archivo secuencial. v ... (Botn Examinar). Si pulsa ..., se abre el recuadro de dilogo Seleccionar desde servidor. Consulte Recuadro de dilogo Seleccionar desde servidor. v Directorio temporal. La va de acceso completa y el directorio en el que se almacenan los archivos temporales. Estos archivos temporales se crean cuando se est ejecutando el trabajo y se suprimen cuando finaliza el trabajo. El valor predeterminado es el directorio de trabajo actual. v ... (Botn Examinar). Si pulsa ..., se abre el recuadro de dilogo Seleccionar desde servidor. Consulte Recuadro de dilogo Seleccionar desde servidor. v Nivel de rastreo. El tipo de informacin que debe incluirse en el archivo de registro de trabajo. Puede especificar los siguientes niveles de rastreo: 0 - No se graba informacin en el archivo de registro 1 - Las propiedades de la etapa se graban en el archivo de registro El valor predeterminado es 0. v Descripcin. Descripcin opcional de las propiedades de la etapa. Nota: Tambin puede incluir un parmetro de trabajo en la va de acceso del directorio.

Recuadro de dilogo Seleccionar desde servidor


Si pulsa Examinar (botn ...), se abre el recuadro de dilogo Seleccionar desde servidor. Los campos siguientes se encuentran en el recuadro de dilogo Seleccionar desde servidor: v Buscar en. El nombre del directorio predeterminado seleccionado. Pulse la flecha hacia abajo para ver dnde est actualmente ubicado dentro de la jerarqua del directorio. v Nombres de directorio o archivo. Una lista de nombres de directorios o archivos en el directorio de Buscar en. v Nombre de archivo (o patrn). Nombre del archivo o patrn seleccionado. v Archivos del tipo. La expresin de nombre de archivo. De forma predeterminada, se muestran todos los archivos.

Definicin de la correlacin de juego de caracteres


Puede definir una correlacin de juego de caracteres para una etapa. Realice esta tarea desde el separador Soporte multilingstico en la pgina Etapa. El separador Soporte multilingstico slo aparece si ha instalado el soporte multilingstico. Especifique la informacin mediante los siguientes campos: v Correlacionar el nombre que debe utilizarse con la etapa. Define la correlacin de juego de caracteres predeterminada para el proyecto o el trabajo. Puede cambiar la correlacin seleccionando un nombre de correlacin de la lista. v Mostrar todas las correlaciones. Muestra una lista de todas las correlaciones transferidas con InfoSphere DataStage.
Captulo 4. Etapas de trabajo de servidor

89

v Slo correlaciones cargadas. Muestra una lista de las correlaciones que estn cargadas en ese momento. v Permitir correlacin por columnas. Habilita la correlacin de juegos de caracteres por columna. Las columnas de un registro pueden utilizar distintas correlaciones dentro de los metadatos. v Utilizar parmetro de trabajo.... Especifica los valores de los parmetros para el trabajo. Utilice el formato #Parm#, donde Parm es el nombre del parmetro de trabajo. La serie #Parm# se sustituye por el parmetro de trabajo cuando se ejecuta el trabajo.

Ajuste del tamao del archivo de entrada


La etapa Merge da soporte a los archivos de 64 bits. No obstante, debe cambiar el valor de la propiedad Espacio mximo en VM para la Hash Table si desea alojar archivos de entrada extremadamente grandes. Si no lo hace, se produce una terminacin anmala de los trabajos. El valor predeterminado de Espacio mximo en VM para la Hash Table es 12. Este valor es adecuado para muchos tamaos de archivo. Cuando aumenta el tamao del mayor de los dos archivos de entrada, debe aumentar el valor de Espacio mximo en VM para la Hash Table. Para los archivos de 2 GB o ms, debe establecer el valor de Espacio mximo en VM para la Hash Table en su valor mximo, 512. Para acceder a Espacio mximo en VM para la Hash Table, pulse con el botn derecho del ratn sobre el icono Fusionar en el lienzo y seleccione Estilo de cuadrcula. Aparece el editor de estilo de cuadrcula. Vaya al separador Propiedades de la pgina Salida. Desplcese en la lista de propiedades hasta que llegue a Espacio mximo en VM para la Hash Table.

Definicin de propiedades de salida


El separador Salida del recuadro de dilogo Etapa MERGE permite especificar propiedades para el enlace de salida. Las propiedades de salida describen las distintas caractersticas de los archivos de entrada y el enlace de salida, de la siguiente manera: v Nombres del primer y del segundo archivo de entrada v Nivel de rastreo del enlace de salida v Formato del primer y del segundo archivo de entrada v Nombres de columna y caractersticas del primer y del segundo archivo de entrada, incluida la correlacin de juegos de caracteres v v v v v Informacin de columna que se va a guardar en una tabla Tipo de operacin de unin que se va a realizar Teclas utilizadas en operacin de unin Contenido de las columnas en el enlace de salida Nombres de columna y formatos en el enlace de salida, incluida la correlacin de juego de caracteres

El separador General
Si selecciona la pgina Salida, se abrir el separador General. Nota: El botn Columnas... elabora un listado de las columnas en el enlace de salida y slo se incluye por motivos de compatibilidad con otras etapas. El separador General contiene los campos siguientes: v Nombre del primer archivo. La va de acceso del directorio y el nombre de archivo del primer archivo que se debe fusionar. Este archivo debe ser un archivo de texto secuencial. Tambin puede incluir un parmetro de trabajo en la va de acceso del directorio.

90

Gua del desarrollador de Server Job

v Nombre del segundo archivo. La va de acceso del directorio y el nombre de archivo del segundo archivo que se debe fusionar. Este archivo debe ser un archivo de texto secuencial. Tambin puede incluir un parmetro de trabajo en la va de acceso del directorio. v Tipo de unin. El tipo de unin que desea efectuar entre dos archivos de entrada. Puede elegir uno de los siguientes tipos de operacin de unin:
Tipo de unin Unin interna pura Operacin A AND B Descripcin Slo fusiona aquellas filas que tienen los mismos valores clave en ambos archivos de entrada. Fusiona todas las filas de los dos archivos. Fusiona todas las filas de los dos archivos excepto aquellas filas con los mismos valores clave. Fusiona todas las filas del primer archivo (A) con filas del segundo archivo (B) con el mismo valor clave. Fusiona todas las filas del segundo archivo (B) con filas del primer archivo (A) con el mismo valor clave. Fusiona todas las filas del primer archivo excepto las filas con el mismo valor clave en el segundo archivo (B). Fusiona todas las filas del segundo archivo excepto las filas con el mismo valor clave en el primer archivo (A).

Conjunto completo Slo derecha e izquierda

A OR B A NOR B

Unin externa izquierda

Unin externa derecha

Slo izquierda

A NOT B

Slo derecha

B NOT A

v Nivel de rastreo. Especifica un nivel de rastreo para el enlace de salida. El nivel de rastreo especifica el tipo de informacin que debe incluirse en el archivo de registro de trabajo. Puede especificar los siguientes niveles de rastreo: 0 - No se graba informacin en el archivo de registro 1 - Las propiedades del enlace de salida se graban en el archivo de registro

Separador Propiedades de archivo de entrada


Debe especificar el formato de archivo del primer y el segundo archivo de entrada. Para especificar el formato de archivo, pulse el separador Propiedades de archivos de entrada en la pgina Salida. Se abre la pgina Formato de primer archivo delante de la pgina Propiedades de archivos de entrada. Para especificar el formato del segundo archivo de entrada, pulse el separador Formato de segundo archivo. Los campos y los recuadros de seleccin son idnticos para el segundo archivo. A continuacin, se describe cada campo y recuadro de seleccin de las pginas Formato de primer archivo o Formato de segundo archivo: Primer y segundo separador de Formato de archivo: v Columnas de anchura fija. Indica si el archivo tiene columnas de anchura fija. El valor predeterminado es sin seleccionar. v La primera lnea son nombres de columna. Indica si la primera lnea del primer archivo secuencial contiene nombres de columna. El valor predeterminado es sin seleccionar. v Comprobar datos con metadatos. Indica si se deben utilizar definiciones de metadatos para leer datos desde un archivo en lugar de utilizar un terminador de lnea para el final de una fila. Se leern los datos hasta que se agoten los metadatos.
Captulo 4. Etapas de trabajo de servidor

91

Para los datos de anchura fija, esto significa el total de la longitud de las columnas ms los espacios. Para los datos delimitados, esto significa el nmero de columnas. Si se borra, el final de la fila se determina por la secuencia de fin de la lnea. El valor predeterminado es sin seleccionar. v Delimitador. Especifica el delimitador que separa los campos de datos del archivo. Esta opcin est habilitada si se ha borrado Columnas de anchura fija. Puede entrar un nico carcter sin comillas o el valor ASCII del carcter que desea utilizar. El valor predeterminado es , (coma). v Carcter de cita. Especifica el carcter que se utiliza para incluir un valor de datos que contiene el carcter delimitador como datos. Esta opcin est habilitada si se ha borrado Columnas de anchura fija. Tambin puede entrar el valor ASCII de tres dgitos para el carcter que desee utilizar. Todos los valores con una longitud del 1 al 2 se tratarn como series. Puede entrar "097" para "a". Puede suprimir el Carcter de cita si no entra ningn valor. El valor predeterminado es " (comillas dobles). v Carcter de escape. Especifica un nico carcter para que sea interpretado como un carcter de escape. Esta opcin est habilitada si se ha borrado Columnas de anchura fija. El valor predeterminado es \ (barra inclinada invertida). v Espacios entre columnas. Especifica el nmero de espacios entre columnas en un archivo secuencial con columnas de anchura fija. El valor predeterminado es 0. v Serie vaca. Especifica la serie utilizada para el valor nulo de SQL. No existe ningn valor predeterminado. v Estilo Unix (LF). Especifica si se utiliza un carcter de avance de lnea para indicar la secuencia de fin de la lnea en un archivo de entrada. De forma predeterminada, no se selecciona Estilo Unix (LF). v Estilo Dos (CR LF). Especifica si se utiliza una combinacin de retorno de carro y de caracteres de avance de lnea para indicar la secuencia de fin de la lnea en el archivo de entrada. De forma predeterminada, no se selecciona Estilo Dos (LF). v Ninguna. Especifica si debe utilizarse un terminado de fin de la lnea. Ninguno estar habilitado si se ha seleccionado Columnas de anchura fija y Comprobar datos con metadatos. De forma predeterminada, no se selecciona la opcin Ninguno. Separadores Columnas del primer y del segundo archivo: Acerca de esta tarea Mediante las pginas Columnas de primer archivo y Columnas de segundo archivo puede especificar lo siguiente: v Nombres de columnas del primer y del segundo archivo de entrada secuencial v Caractersticas del archivo secuencial, incluyendo tipo de SQL, longitud, escala, capacidad de nulos y visualizacin de la columna v Correlacin de juego de caracteres utilizada para la columna Pulse el separador Columnas de primer archivo o Columnas de segundo archivo de la pgina Propiedades de archivos de entrada Se abrir la pgina Columnas de primer archivo o Columnas de segundo archivo. Tiene dos opciones para entrar informacin sobre las columnas: v Puede utilizar informacin de una tabla existente para especificar las columnas de archivo de entrada. v Puede entrar la informacin sobre la columna manualmente. Cmo utilizar la informacin de la columna de una tabla existente: Acerca de esta tarea Puede utilizar informacin de una tabla existente para definir las columnas en el primer o el segundo archivo de entrada. Las definiciones de tabla especifican los datos utilizados en cada etapa de un trabajo de InfoSphere DataStage y se almacenan en el repositorio.

92

Gua del desarrollador de Server Job

Para transferir informacin sobre columnas de una tabla existente: Procedimiento 1. Pulse Cargar... . Aparecer el recuadro de dilogo Definicin de tabla. 2. Utilice el ratn para seleccionar la definicin de tabla en el panel izquierdo y pulse Aceptar. Las tablas listadas ya estn definidas en el repositorio. a. Si no sabe la definicin de tablas, pulse Buscar... . Aparecer el recuadro de dilogo Buscar. b. En el campo Texto de bsqueda, entre una serie de texto. La primera definicin de tabla que contiene la serie de texto especificada por el usuario aparece resaltada en el panel izquierdo. 3. Una vez haya seleccionado el nombre del archivo, pulse Aceptar. Entrada manual de informacin de columna: Acerca de esta tarea Puede entrar informacin sobre columnas manualmente especificando dicha informacin en la pgina Columnas del primer archivo. Entre un nombre de columna en Lista de nombres de columna y utilice los botones de Acciones de columna (Aadir, Insertar Antes, Modificar, Eliminar o Eliminar todo) para especificar dnde colocar los nombres en la Lista de nombres de columna. El sistema le solicitar que entre la informacin que se describe a continuacin. v Lista de nombres de columna. Especifica los nombres de cada columna en el primer o en el segundo archivo. Estos nombres se utilizan en la pgina Correlacin que define el enlace de salida. No existe ningn valor predeterminado. v Tipo de SQL. Especifica el tipo de datos SQL. No existe ningn valor predeterminado. v Longitud. Define la precisin de los datos. Es la longitud de los datos CHAR o la longitud mxima de los datos VARCHAR. Si se trata de datos numricos, es el nmero de dgitos de precisin. El valor predeterminado es 0. v Escala. Especifica el factor de escala de los datos. Si se trata de datos numricos, es el nmero de dgitos a la derecha del separador decimal. El valor predeterminado es 0. v Con posibilidades de nulos. Especifica si la columna puede contener valores nulos. El valor predeterminado es S. v Visualizacin. Especifica el nmero mximo de caracteres necesarios para visualizar los datos de la columna. El valor predeterminado es 0. v Correlacin de soporte multilingstico. Especifica una correlacin diferente para la columna si se ha habilitado Correlacin por columna (consulte Definicin de la correlacin de juego de caracteres en la pgina 89). Seleccione una correlacin de la lista. El recuadro de dilogo Guardar definicin de tabla: Una vez haya especificado los nombres de las columnas y la correspondiente informacin necesaria, puede grabar dicha informacin en una tabla nueva. Para guardar la informacin de columna en una tabla, pulse Guardar.... Se abrir el recuadro de dilogo Guardar definicin de tabla. El recuadro de dilogo Guardar definicin de tabla contiene los campos siguientes: v Tipo de fuente de datos. El tipo de datos grabado en la tabla. El tipo de fuente de datos puede ser una fuente de datos ODBC, una tabla de UniVerse, un archivo hash (UniVerse), un archivo de UniData y un archivo secuencial o una etapa. La definicin de tabla se almacena de acuerdo con la fuente de datos en la ramificacin Definiciones de tabla. El valor predeterminado es Guardado. v Nombre de la fuente de datos. Constituye la segunda parte del identificador de la definicin de tabla y proporciona el nombre creado bajo la ramificacin de tipo de fuente de datos. Facilita un medio para realizar un seguimiento de dnde se ha originado la definicin de datos. El valor predeterminado es el nombre del enlace.
Captulo 4. Etapas de trabajo de servidor

93

v Nombre de tabla/archivo. El nombre de la tabla o del archivo que contiene los datos. El valor predeterminado es el nombre del enlace. v Descripcin breve. Una descripcin breve opcional de los datos. El valor predeterminado es la hora y la fecha guardadas. v Descripcin explicativa. Una descripcin explicativa opcional de los datos.

El separador Correlacin
Debe especificar las claves en el primer y el segundo archivo de entrada secuencial para que se utilicen en la operacin de unin. Para especificar las claves, pulse el separador Correlacin en la pgina Salida. Se abrir el separador Correlacin. Especificacin de claves para la unin: Acerca de esta tarea Seleccione claves del Primer (y el Segundo) Nombre de columna de archivos en la parte izquierda de la pgina y arrstrelos a la Primera (y a la Segunda) Clave de columna de archivos a la derecha. Estas claves se utilizan en la operacin de unin para comparar dos archivos. Puede especificar varias claves para la operacin de unin. Si utiliza varias claves, debe tener el mismo nmero de claves en las listas de la Primera clave de columna de archivos y en la Segunda clave de columna de archivos. Para suprimir una entrada que ha realizado, seleccinela y pulse con el botn derecho del ratn Borrar entrada del men de atajo. Especificacin de columnas de salida: Debe especificar el contenido de las columnas que deben incluirse en el enlace de salida. Utilice la pgina Correlacin para especificar el contenido de las columnas. Acerca de esta tarea En la pgina Correlacin, los Nombres de columna del primer archivo y Nombres de columna del segundo archivo ya estn definidos. Se han definido en la pgina Propiedades de archivos de entrada. En la pgina Correlacin, debe especificar qu columnas de los archivos de entrada desea incluir en el enlace de salida. Para especificar el contenido de una columna en el enlace de salida, seleccione una columna en el recuadro de lista Nombres de columna del primer archivo o Nombres de columna del segundo archivo y arrastre la columna a la lista Correlacin de la columna de entrada. El Nombre de columna de salida se genera automticamente. Las propiedades de las columnas en el enlace de salida se derivan de los del archivo de entrada. Debe incluir una Clave de columna del primer archivo y una Clave de columna del segundo archivo en la Lista de columnas. Si desea especificar de forma explcita los nombres y las propiedades de las columnas en el enlace de salida, vaya a la pgina Columnas, tal como se describe en El separador Columnas en la pgina 95. Puede seleccionar varias columnas a la vez para arrastrarlas de la lista Nombres de columna del primer (o segundo) archivo a la lista Correlacin de la columna de entrada. Para seleccionar varias columnas, seleccione la primera columna y mantenga pulsada la tecla Control hasta que se hayan resaltado todas las columnas que desea. O bien, mantenga pulsada la tecla Mays y pulse para seleccionar varias columnas. Puede pulsar el botn derecho del ratn para suprimir un elemento de la lista Correlacin de la columna de entrada. Para suprimir columnas del enlace de salida, pulse el separador Columnas y suprima las columnas tal como se describe en El separador Columnas en la pgina 95.

94

Gua del desarrollador de Server Job

Nota: Si cambia los Nombres de columna del primer archivo (o el segundo archivo) a la izquierda de la pgina, deber comprobar la informacin de correlacin (es decir, las claves de correlacin y la lista de columnas) a la derecha de la pgina. Si los nombres de columna de la derecha de la pgina no coinciden con los de la izquierda, arrastre los nombres de columna correctos de la izquierda a la derecha.

El separador Columnas
Puede utilizar el separador Columnas para especificar el nombre y el formato de las columnas en el enlace de salida. Tambin puede utilizar el separador Columnas para especificar una correlacin de juegos de caracteres diferente para la columna, para que las columnas de un registro puedan utilizar distintas correlaciones. Tal como se describe en Separadores Columnas del primer y del segundo archivo, puede utilizar la informacin de una tabla existente para especificar las columnas. Consulte dicha seccin para ver cmo puede utilizar el botn Cargar... para transferir informacin de una tabla. Nota: Debe establecer todas las columnas en "Con posibilidades de nulos", excepto si establece la fusin en Unin interna pura, tal como se describe en Tipo de unin. El separador Columnas contiene los campos siguiente: v Nombre de columna. Especifica el nombre de la columna cuyo formato est definiendo. v Grupo. Especifica si desea agrupar por esta columna. El valor predeterminado es No. Derivacin. Especifica que desea resumir utilizando esta columna. Clave. Define si la columna es una clave. Tipo de SQL. Especifica el tipo de datos SQL. El valor predeterminado es (Desconocido). Longitud. Define la precisin de los datos. Es la longitud de los datos CHAR o la longitud mxima de los datos VARCHAR. Si se trata de datos numricos, es el nmero de dgitos de precisin. v Escala. Especifica el factor de escala de los datos. Si se trata de datos numricos, es el nmero de dgitos a la derecha del separador decimal. v Con posibilidades de nulos. Especifica si la columna puede contener valores nulos. Debe ser S, a menos que ejecute una unin interna pura. El valor predeterminado es No. v Visualizacin. Especifica el nmero mximo de caracteres necesarios para visualizar los datos de la columna. v v v v v Elemento de datos. Especifica el tipo de datos de la columna. v Descripcin. Especifica una descripcin de texto opcional de la columna. v Correlacin de soporte multilingstico. Si se habilita la correlacin por columnas, especifica la correlacin que se ejecuta para la columna. Seleccione uno de los nombres de correlacin en la lista desplegable. El valor predeterminado es el del proyecto (MS1252). Supresin de columnas en el enlace de salida: Puede suprimir las columnas del enlace de salida. Acerca de esta tarea En la pgina Columnas, puede suprimir las columnas que ha definido en el enlace de salida. Procedimiento 1. Seleccione la fila que desea suprimir. 2. Pulse la tecla Suprimir.

Captulo 4. Etapas de trabajo de servidor

95

Etapas Pivot
Pivot, una etapa activa, correlaciona conjuntos de columnas en una tabla de entrada con una nica columna de una tabla de salida. Este tipo de correlacin se denomina girar. Esta etapa gira datos horizontales, es decir, columnas dentro de una nica fila en muchas filas. Repite un segmento de datos que normalmente est orientado a claves de cada columna girada de forma que cada fila de salida contiene un valor separado. Un conjunto de columnas de entrada consiste en una o en varias columnas. El giro normalmente da como resultado una tabla de salida que contiene menos columnas pero ms filas que la tabla de entrada original. La etapa no tiene propiedades de etapa ni de enlace. Simplemente correlaciona filas de entrada con filas de salida.

Funcionalidad de la etapa Pivot


Funcionalidad soportada
La funcionalidad de la etapa Pivot es la siguiente: v Da soporte a los giros horizontales. v Soporte multilingstico.

Funcionalidad no soportada
La siguiente funcionalidad no est soportada: v Compatibilidad con releases anteriores al 7.0 de IBM InfoSphere DataStage. v Los giros verticales, es decir, la correlacin de datos verticales de varias filas en una fila. (Los giros verticales agrupan una o varias columnas y las correlacionan con muchas columnas de la fila agrupada en una tabla de salida). v Una interfaz de usuario personalizada.

Giro de datos
Un giro horizontal correlaciona las columnas de una fila con varias filas, es decir, repite un segmento de datos para cada columna girada. Los datos normalmente estn orientados a las claves. Utilice el campo Derivacin en la cuadrcula de columna del enlace de salida para especificar los giros. Un campo vaco indica que hay un nombre de columna de entrada con el mismo nombre que la columna de salida. Esta columna de entrada est correlacionada con la columna de salida correspondiente.

Derivacin individual
Si el campo Derivacin de una columna de salida muestra un nico nombre de columna, la columna de entrada que tiene el mismo nombre que el especificado en el campo Derivacin se correlaciona con esta columna de salida. Una columna que tenga una derivacin individual se trata como una clave y se proyecta de la misma manera en cada fila de salida derivada de la fila de entrada individual.

Varias derivaciones
Cuando una columna de salida se deriva de ms de una columna de entrada, es decir, cuando aparecen varios nombres de columna de entrada en el campo Derivacin, se genera una tabla de salida con ms filas que la tabla de entrada. Cada columna de entrada especificada en el campo Derivacin para las

96

Gua del desarrollador de Server Job

columnas de salida se correlaciona con la columna de salida. Se crea una nueva fila para cada una de las columnas de entrada especificada.

Ejemplos
Los ejemplos que se describen en las siguientes secciones muestran un giro en los datos de ventas del primer trimestre para una determinada empresa. Estos ejemplos ilustran los conceptos de un giro horizontal.

Columnas de enlace de entrada


El ejemplo siguiente ilustra la entrada de datos en la etapa Pivot. El separador Columnas de la pgina Entradas contiene tres columnas de entrada con datos de ventas: Ventas_ENE, Ventas_FEB y Ventas_MAR. Las columnas estn estructuradas de la forma siguiente:
Tabla 10. Columnas de entrada Nombre de la columna CUSTID LNAME Ventas_ENE Ventas_FEB Ventas_MAR Tipo de SQL Entero VarChar Decimal Decimal Decimal Longitud 10 10 10 10 10 2 2 2 Escala

Nota: En toda columna, el tipo de datos documentado en Tipo de SQL debe ser el mismo que el tipo de datos de la tabla de origen. Los datos de las filas de origen para las columnas de entrada tienen la apariencia siguiente:
Tabla 11. Filas de origen de entrada CUSTID 100 101 LNAME Smith Yamada Ventas_ENE $1,234.00 $1,245.00 Ventas_FEB $1,456.00 $1,765.00 Ventas_MAR $1,578.00 $1,934.00

Columnas de enlace de salida


El siguiente ejemplo ilustra como especificar los datos de salida de la etapa Pivot. El separador Columnas del enlace de salida contiene una columna de Ventas derivada de las tres columnas de entrada: Ventas_ENE, Ventas_FEB y Ventas_MAR. Las columnas estn estructuradas de la forma siguiente:
Tabla 12. Columnas de salida Nombre de la columna CUSTID Apellido Ventas LNAME Ventas_ENE, Ventas_FEB y Ventas_MAR Derivacin Tipo de SQL Entero VarChar Decimal Longitud 10 10 10 2 Escala

Nota: En toda columna, el tipo de datos documentado en Tipo de SQL debe ser el mismo que el tipo de datos de la tabla de destino.
Captulo 4. Etapas de trabajo de servidor

97

La columna de salida que se deriva de una nica columna de entrada es un valor clave. El valor clave se repite en cada fila que resulta de la correspondiente fila de entrada. El nmero mximo de filas de salida que resulta de una nica fila de entrada viene determinado por la columna de salida que se deriva de la mayora de columnas de entrada. Las tres filas de salida de los datos de ventas que resultan de cada fila de entrada en este ejemplo son de la manera siguiente:
Tabla 13. Filas de destino de salida CUSTID 100 100 100 101 101 101 Apellido Smith Smith Smith Yamada Yamada Yamada Ventas $1,234.00 $1,456.00 $1,578.00 $1,245.00 $1,765.00 $1.934.00

Si el giro incluye cualquier derivacin con menos del nmero mximo de filas de salida pero ms de una fila, la fila de salida contendr un valor nulo para cada columna en la que no est disponible una derivacin. Por ejemplo, supongamos que se pide al cliente que realice los pagos en su cuenta dos veces al ao, en junio y en diciembre. Es posible que los datos de origen sean como los siguientes:
Tabla 14. Ejemplo de pagos CUSTID 100 101 LNAME Smith Yamada Ventas_ENE $1,234.00 $1,245.00 Ventas_FEB $1,456.00 $1,765.00 Ventas_MAR $1,578.00 $1,934.00 Pagos_JUN $6,298.00 $7,290.00 Pagos_DIC $7,050.00 $7,975.00

Supongamos que el enlace de salida contiene una derivacin adicional para pagos:
Tabla 15. Columnas de salida con detalles de pagos Nombre de la columna CUSTID Apellido Ventas Pagos LNAME Ventas_ENE, Ventas_FEB y Ventas_MAR Pagos JUN, Pagos DIC Derivacin Tipo de SQL Entero VarChar Decimal Longitud 10 10 10 2 Escala

Los datos de salida en las filas de destino despus del giro podran ser los siguientes:
Tabla 16. Datos de salida en filas de destino despus de giro CUSTID 100 100 100 101 101 LNAME Smith Smith Smith Yamada Yamada
Gua del desarrollador de Server Job

Ventas $1,234.00 $1,456.00 $1,578.00 $1,245.00 $1,765.00

Pagos $6,298.00 $7,050.00 null $7,290.00 $7,975.00

98

Tabla 16. Datos de salida en filas de destino despus de giro (continuacin) CUSTID 101 LNAME Yamada Ventas $1,934.00 Pagos null

Etapas Row Merger


La etapa Row Merger lee datos de una fila sin parar desde un enlace de entrada. Fusiona todas las columnas en una nica serie de un formato especificado. A continuacin, grana la serie en una columna indicada del enlace de salida. La etapa puede tener un nico enlace de entrada y un nico enlace de salida. Durante una operacin normal de la etapa Row Merger, cada fila de entrada con varias columnas da como resultado una fila de salida de una nica columna. La etapa tambin ofrece recursos de concatenacin, no obstante, estos recursos permiten concatenar el resultado de cada fila de entrada en una nica serie a la que se da salida cuando la etapa detecta una seal de fin de los datos (EOD) o de fin de la transmisin (EOT) (lo que significa que no se esperan ms filas de entrada). Nota: La etapa Row Merger se parece a la etapa Sequential File de servidor. La diferencia radica en que, mientras la etapa Sequential File graba en un archivo, la etapa Row Merger realiza la salida en un enlace.

Funcionalidad de la etapa Row merger


Funcionalidad soportada
La etapa Row Merger da soporte a la siguiente funcionalidad: v La posibilidad de leer una fila cada vez, fusionar todas las columnas de una fila en una serie individual con un determinado formato y, posteriormente, grabar las series en una columna especfica del enlace de salida. v Agregacin de varias filas de datos. v Soporte multilingstico. La etapa graba lo que lee sin realizar ninguna interpretacin ni conversin.

Separador General de la pgina Etapa


El separador General de la pgina Etapa permite acceder a los recursos de concatenacin de la etapa Row Merger. El separador General contiene los campos siguientes: v Varias lneas. Determina si la etapa Row Merger debe concatenar las filas de entrada en una fila de salida individual, o si produce cada fila de entrada como una fila de salida aparte. Seleccione Varias lneas para concatenar las filas. De forma predeterminada, esta opcin no est seleccionada. v Finalizacin de lnea. Esta opcin slo est disponible si ha seleccionado la opcin Varias lneas para especificar que la etapa est concatenando filas de entrada. Especifica el carcter/caracteres que se colocarn como delimitador entre las filas concatenadas cuando se muestren en una sola fila. Seleccione uno de los valores siguientes: Estilo Unix (LF). Coloca un carcter de salto de lnea como delimitador entre cada fila fusionada. Estilo DOS (CR LF). Coloca un carcter de retorno de carro y un carcter de salto de lnea como delimitador entre cada fila fusionada. Ninguna. No coloca ningn delimitador entre las filas fusionadas. v Descripcin. Entre una descripcin opcional de la etapa.

Pgina Entrada
La pgina Entrada contiene varios separadores que describen los datos que estn entrando en la etapa Row Merger.
Captulo 4. Etapas de trabajo de servidor

99

El separador General contiene un campo de descripcin que permite entrar una descripcin opcional del enlace de entrada. El separador Formato y el separador Columnas se describen ms abajo.

Separador Formato
Utilice este separador para especificar el modo en que los datos ledos en columnas individuales en cada fila de entrada se formatearn antes de que se genere la salida en una nica columna. El separador contiene los campos siguientes: v Columnas de anchura fija. Seleccione este recuadro de seleccin para generar la salida de los datos en un formato de anchura fija. La anchura de cada campo se toma desde el tamao de visualizacin de SQL de las columnas de entrada (establecido en la columna Visualizacin en la Cuadrcula de columnas de la pgina Entradas, separador Columnas). De forma predeterminada, esta opcin est borrada. v Supresin de advertencias de truncamiento de filas. Esta opcin slo est disponible si se ha seleccionado Columnas de anchura fija. Si las filas de entrada contienen ms columnas que las que haya definido en el separador Columnas, normalmente recibir avisos acerca de las filas demasiado largas cuando ejecute el trabajo. Si desea suprimir estos mensajes (por ejemplo, es posible que slo est interesado en las tres primeras columnas y desee prescindir del resto), seleccione este recuadro de seleccin. v Delimitador. Esta opcin no est disponible si se ha seleccionado Columnas de anchura fija. Especifica el delimitador utilizado para separar los campos de datos en los datos de salida que se han derivado de las columnas de entrada. De forma predeterminada, este campo contiene una coma. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el delimitador. v Carcter de cita. Esta opcin no est disponible si se ha seleccionado Columnas de anchura fija. Especifica el carcter utilizado para incluir series. De forma predeterminada, este campo contiene un carcter de comillas dobles. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el carcter de cita. v Espacios entre columnas. Esta opcin slo est disponible si se ha seleccionado Columnas de anchura fija. Contiene un nmero para representar el nmero de espacios utilizado entre columnas. De forma predeterminada es 0. v Serie NULL predeterminada. Contiene caracteres que, cuando se encuentran en una fila de entrada, se interpretan como el valor nulo de SQL. v Relleno predeterminado. Esta opcin slo est disponible si se ha seleccionado Columnas de anchura fija. Contiene el carcter utilizado para rellenar las columnas ausentes. De forma predetermina es #, pero aqu se puede establecer otro carcter. El separador Formato tambin tiene un botn Cargar. Si tiene definiciones de tabla que incluyen informacin sobre el formato, puede cargar detalles sobre el formato desde estas definiciones de tabla directamente a la pgina Formato: 1. Pulse Cargar. Aparecer el recuadro de dilogo Cargar definiciones de tabla. 2. Realice una bsqueda para encontrar la definicin de tabla que contenga el formato que desea cargar. 3. Pulse Aceptar. Se cargarn los detalles sobre el formato.

Separador Columnas
Las entradas en la cuadrcula de columnas especifican el formato de los datos que se estn leyendo desde las filas de entrada. La cuadrcula tiene campos estndar que tienen todas las definiciones de columna.

100

Gua del desarrollador de Server Job

Pgina Salida
La pgina Salida contiene varios separadores que describen los datos editados por la etapa Row Merger.

Separador General
El separador General identifica la columna que contiene los datos fusionados. El separador General contiene los campos siguientes: v Nombre de la columna que se debe fusionar. Una lista contiene una lista de las columnas de salida definidas para esta etapa. Seleccione la columna en la que quiere que se produzca la salida de los datos fusionados. v Descripcin. Descripcin opcional del enlace de salida.

Separador Columnas
Las entradas en la cuadrcula de columnas especifican el formato de los datos que se estn grabando al enlace de entrada. La cuadrcula tiene campos estndar que tienen todas las definiciones de columna. El campo Derivacin no se utiliza. Como mnimo, debe definir una columna que lleve los datos fusionados. Tambin puede definir columnas adicionales para que lleven datos como entrada en la etapa.

Etapas Row Splitter


La etapa Row Splitter lee datos de una fila sin parar desde un enlace de entrada. Esta etapa divide los campos de datos de una serie en numerosas columnas. A continuacin, graba las columnas en el enlace de salida. La etapa puede tener un nico enlace de entrada y un nico enlace de salida. Durante una operacin normal de la etapa Row Splitter, cada serie de entrada procesada da como resultado una fila de salida de mltiples columnas. En algunos casos, sin embargo, una nica serie de entrada puede representar muchas filas de datos de entrada. En este caso, la etapa puede desconcatenarlas en filas separadas para la salida. Nota: La etapa Row Splitter se parece a la etapa Sequential File de servidor. La diferencia radica en que, mientras la etapa Sequential File lee a partir de un archivo, la etapa Row Splitter lo hace desde un enlace.

Funcionalidad de la etapa Row Splitter


Funcionalidad soportada
La etapa Row Splitter da soporte a la siguiente funcionalidad: v La posibilidad de leer una fila cada vez, repartir los campos de datos contenidos en una serie entre varias columnas y, posteriormente, grabar las columnas en el enlace de salida. v Generacin de varias filas de salida. v Soporte multilingstico. La etapa graba lo que lee sin realizar ninguna interpretacin ni conversin.

Separador General de la pgina Etapa


El separador General de la pgina Etapa permite acceder a los recursos de desconcatenacin de la etapa Row Splitter. El separador General contiene los campos siguientes: v Varias lneas. Determina si la etapa Row Splitter debe desconcatenar la serie de entrada en filas de entrada separadas o si da salida a cada serie de entrada como una fila de salida separada. Seleccione Varias lneas para desconcatenar las filas. De forma predeterminada, esta opcin no est seleccionada.

Captulo 4. Etapas de trabajo de servidor

101

v Finalizacin de lnea. Esta opcin slo est disponible si ha seleccionado la opcin Varias lneas para especificar que la etapa est desconcatenando filas de entrada. Especifica el carcter/caracteres que se colocan como un delimitador entre las filas concatenadas, de forma que la etapa sabe dnde partirlas. Elija entre: Estilo Unix (LF). El delimitador es un carcter de salto de lnea. Estilo DOS (CR LF). El delimitador es un carcter de retorno de carro y un carcter de salto de lnea. Ninguna. No existe ningn delimitador. v Descripcin. Entre una descripcin opcional de la etapa.

Pgina Entrada
La pgina Entrada contiene varios separadores que describen los datos que estn entrando en la etapa Row Splitter.

Separador General
Utilice el separador General para identificar el nombre de la columna que contiene la serie a partir de la que la etapa extrae las columnas. El separador General contiene los campos siguientes: v Nombre de la columna que se debe partir. Una lista contiene una lista de las columnas de entrada definidas para esta etapa. Seleccione la columna que contiene la serie a partir de la que la etapa extrae las columnas. v Descripcin. Entre una descripcin opcional del enlace de entrada.

Separador Columnas
Las entradas en la cuadrcula de columnas especifican el formato de los datos que se estn leyendo desde el enlace de entrada. La cuadrcula tiene campos estndar que tienen todas las definiciones de columna. Como mnimo, debe definir una columna que lleve la serie de datos que la etapa est partiendo. Si es necesario, tambin puede definir columnas adicionales. Todas las columnas que se definan aqu y en el separador Columnas de la pgina Salida se pasarn directamente a travs de la etapa.

Pgina Salida
La pgina Salida contiene varios separadores que describen los datos editados por la etapa Row Splitter. El separador General contiene un campo de descripcin que permite entrar una descripcin opcional del enlace de entrada. El separador Formato y el separador Columnas se describen ms abajo.

Separador Formato
Utilice este separador para especificar cmo se formatea la serie de entrada, de forma que la etapa pueda separar las columnas. El separador contiene los campos siguientes: v Columnas de anchura fija. Seleccione este recuadro de seleccin si los datos entrantes estn en un formato de anchura fija. La anchura de cada campo se toma desde el tamao de visualizacin de SQL de las columnas de salida (establecido en la columna Visualizacin en la Cuadrcula de columnas de la pgina Entradas, separador Columnas). De forma predeterminada, esta opcin est borrada. v Supresin de advertencias de truncamiento de filas. Si la fila de entrada contiene ms campos de datos que deban separarse en columnas de los que haya definido en el separador Columnas, por lo general recibir avisos sobre filas demasiado largas cuando ejecute el trabajo. Si desea suprimir estos mensajes (por ejemplo, es posible que slo est interesado en las tres primeras columnas y desee prescindir del resto), seleccione este recuadro de seleccin.

102

Gua del desarrollador de Server Job

v Mensaje de columnas ausentes. Si en la fila de entrada hay menos campos de datos que columnas de divisin definidas para los mismos, esta opcin permite especificar la accin que se debe realizar: Muy grave. Se graba un error muy grave en el registro de trabajo y el trabajo termina anormalmente (es el valor predeterminado.) Aviso. Se graba un mensaje de aviso en el registro de trabajo, los nulos de SQL graban en columnas adicionales y el trabajo prosigue. Ninguna. No se efecta ninguna accin. Los nulos de SQL graban en columnas adicionales y el trabajo prosigue. v Delimitador. Esta opcin no est disponible si se ha seleccionado Columnas de anchura fija. Especifica el delimitador utilizado para separar los campos de datos en la serie de datos de entrada. De forma predeterminada, este campo contiene una coma. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el delimitador. v Carcter de cita. Esta opcin no est disponible si se ha seleccionado Columnas de anchura fija. Especifica el carcter utilizado para incluir series. De forma predeterminada, este campo contiene un carcter de comillas dobles. Puede entrar un nico carcter imprimible o un nmero decimal o hexadecimal para representar el cdigo ASCII del carcter que desea utilizar. Los cdigos ASCII vlidos se encuentran en el rango del 1 al 253. Los valores decimales entre el 1 y el 9 deben estar precedidos por un cero. Los valores hexadecimales deben prefijarse con &h. Entre 000 para suprimir el carcter de cita. v Espacios entre columnas. Esta opcin slo est disponible si se ha seleccionado Columnas de anchura fija. Contiene un nmero para representar el nmero de espacios utilizado entre columnas. De forma predeterminada es 0. v Serie NULL predeterminada. Contiene caracteres que, cuando se encuentran en una fila de entrada, se interpretan como el valor nulo de SQL (que puede ser sobrescrito para definiciones de columna individuales en el separador Columnas). v Relleno predeterminado. Esta opcin slo est disponible si se ha seleccionado Columnas de anchura fija. Contiene el carcter utilizado para rellenar las columnas ausentes. De forma predetermina es #, pero aqu se puede establecer otro carcter. El separador Formato tambin tiene un botn Cargar. Si tiene definiciones de tabla que incluyen informacin sobre el formato, puede cargar detalles sobre el formato desde estas definiciones de tabla directamente a la pgina Formato: 1. Pulse Cargar. Aparecer el recuadro de dilogo Cargar definiciones de tabla. 2. Realice una bsqueda para encontrar la definicin de tabla que contenga el formato que desea cargar. 3. Pulse Aceptar. Se cargarn los detalles sobre el formato.

Separador Columnas
Las entradas en la cuadrcula de columnas especifican el formato de los datos que se estn grabando al enlace de entrada. La cuadrcula tiene campos estndar que tienen todas las definiciones de columna. El campo Derivacin no se utiliza.

Etapas Sort
Ordena una etapa activa, ordena varios datos. Ordena cantidades pequeas de datos de forma eficiente en la memoria siempre y cuando disponga de la suficiente memoria. Ordena grandes cantidades de datos utilizando el almacenamiento de disco temporal, no el espacio de intercambio de memoria virtual.

Captulo 4. Etapas de trabajo de servidor

103

El modelo de la etapa Sort es el mandato de UNIX Sort, como se utiliza en una interconexin de shell. Las filas de datos de entrada que se deben ordenar llegan como lneas de caracteres ASCII ledas desde la secuencia stdin. Debe utilizar los argumentos de la lnea de mandatos para especificar cmo ordenar estas filas. Las filas ordenadas resultantes se graban como lneas de caracteres ASCII en la secuencia stdout. En InfoSphere DataStage, la etapa Sort recibe una secuencia de filas que utiliza un nico enlace de entrada. Las filas ya estn separadas en valores de columna individuales. Los valores para las propiedades de la etapa y los atributos de columna especifican cmo ordenar estas filas. Las filas ordenadas resultantes se graban como valores de columnas en un nico enlace de salida. La etapa Sort debe tener un enlace de entrada y un enlace de salida. Las consideraciones sobre las columnas en las filas para los enlaces de entrada y de salida incluyen lo siguiente: v Un nico enlace de secuencia de entrada proporciona filas de datos que se deben ordenar. El tipo de columna de la columna de entrada debe poder convertirse en el tipo de columnas de salida. v Un nico enlace de secuencia de salida recibe filas de datos ordenadas. Las filas de salida tienen el mismo orden de columnas que las columnas de entrada. Los nombres de las columnas de salida pueden diferir de los nombres de las columnas de entrada. El tipo de datos de enlace de salida para cada columna determina el tipo de comparacin que se debe realizar: v Comparacin numrica para nmeros v Fecha y hora v Serie de caracteres (orden de izquierda a derecha para series e indicaciones de hora y fecha)

Funcionalidad de la etapa Sort


Funcionalidad soportada
La etapa Sort contiene las funcionalidades y ventajas siguientes: v Soporta el soporte multilingstico. v Soporta una opcin que ordena por columna utilizando la correlacin de secuencia de clasificacin. v Soporta una opcin que solicita una ordenacin estable. Una ordenacin estable preserva la ordenacin de entrada de filas que si se comparan, son equivalentes. v Registra mensajes para informar sobre avisos no importantes que pueden tener un impacto sobre la precisin de los datos ordenados. v Soporta los parmetros de ajuste de rendimiento para obtener una ordenacin eficiente, por lo tanto, un uso de la memoria virtual limitado.

Funcionalidad no soportada
La siguiente funcionalidad no est soportada: v Carga masiva para enlaces de entrada de secuencia v Procedimientos almacenados

Propiedades configurables
Puede configurar propiedades para mejorar el rendimiento de la etapa Sort.

Nmero mximo de filas en la propiedad Memoria virtual


El Nmero mximo de filas en memoria virtual permite regular la cantidad de datos de la memoria virtual. Si se limita el nmero total de filas que se deben ordenar, el algoritmo de ordenacin realiza

104

Gua del desarrollador de Server Job

ordenaciones crecientes. Esto reduce el uso de la memoria virtual y el excesivo intercambio de pginas que se produce cuando se tiene una gran cantidad de datos de entrada asociados con el enlace de entrada. Esta propiedad se utiliza cuando el nmero de filas dentro del enlace de entrada excede el valor suministrado por esta propiedad. El algoritmo de ordenacin ordena filas por mltiples de este valor y almacena estos grupos ordenados de filas en archivos temporales. Estos archivos temporales, a continuacin, se fusionan para la ordenacin final.

Propiedad Nmero mximo de archivos abiertos


El Nmero mx. de archivos abiertos limita el nmero de archivos de datos intermedios que se crean cuando se realizan ordenaciones crecientes. El proceso de estos datos se controla mediante: v Nmero mximo de archivos abiertos v Nmero mximo de filas en memoria virtual v El nmero actual de filas asociado con el enlace de entrada

Ejemplo de Sort
Suponga que el enlace de entrada contiene 100.000 filas de datos y que Filas mx. en memoria virtual se establece en 10.000 filas. El algoritmo de ordenacin lee las 10.000 primeras filas del enlace de entrada, realiza una ordenacin intermedia y, a continuacin, almacena los datos ordenados en un archivo temporal. El algoritmo prosigue agrupando porciones de 10.000 filas desde el enlace de entrada y almacenando los resultados ordenados en archivos temporales unvocos hasta que se produce una de las siguientes condiciones: v Todos los datos de entrada se han procesado en archivos temporales. El nmero total de archivos temporales es menor que el valor especificado en Mx. de archivos abiertos. Tras las ordenaciones intermedias, los 10 archivos temporales se fusionan y se ordenan de forma conjunta y la ordenacin final se graba en el enlace de salida. v El nmero de archivos temporales es igual al valor especificado en Mx. de archivos abiertos. Si, por ejemplo, Mx. de archivos abiertos est fijado en 5, las primeras 50.000 filas se procesan como cinco archivos temporales, cada uno de ellos con 10.000 filas. Estos archivos temporales se fusionan de forma conjunta para formar un nuevo archivo temporal con 50.000 filas de datos ordenados. El algoritmo toma las siguientes 10.000 filas del enlace de entrada y prosigue con las ordenaciones intermedias. Este algoritmo prosigue recursivamente hasta que se procesan todos los datos. Nota: Si los valores de estos parmetros son demasiado restrictivos, un se produce un alto nmero de ordenaciones intermedias con una fusin de archivos constante.

Criterios de ordenacin
La etapa Sort acumula filas de entrada en la memoria, limitadas por Filas mx. en memoria virtual. Clasifica las filas acumuladas, almacenndolas en archivos de disco, si es necesario. (Los conjuntos de ordenacin pequeos se pueden almacenar en la memoria.) Esta etapa fusiona estos archivos almacenados y graba las filas en el enlace de salida. Puede entrar los valores listados en la tabla siguiente para especificar el orden de las filas, segn la distincin de maysculas y minsculas en la bsqueda

Captulo 4. Etapas de trabajo de servidor

105

Tabla 17. Criterios de ordenacin Distincin de maysculas y minsculas en la bsqueda Sensible a la coincidencia de maysculas y minsculas en la bsqueda No sensible a la coincidencia de maysculas y minsculas en la bsqueda Orden ascendente a asc ascending Orden descendente d dsc descending A ASC ASCENDING D DSC DESCENDING

: El ejemplo siguiente indica que las filas resultantes deben ordenarse en un orden ascendente sensible a la coincidencia de maysculas y minsculas en la columna REGION del enlace de entrada. Utiliza un archivo de correlacin externo denominado CSM en el directorio C:\USER en la columna CUSTOMER y un orden descendente en la columna SALE_PRICE (consulte Ordenar especificaciones en Propiedades de etapa ).
REGION asc, CUSTOMER ASC C:\USER\CSM, SALE_PRICE DSC

Correlaciones de orden de clasificacin


Puede especificar la correlacin del orden de clasificacin ordenando por columna. El formato de la correlacin se adapta a la codificacin de los caracteres como los de un nico byte, de doble byte o un nmero variables de bytes. Puede especificar un archivo de correlacin separado para cada columna que se deba ordenar. El archivo de correlacin se utiliza al ordenar valores de series de caracteres en dicha columna. La correlacin no afecta a la ordenacin de los valores de series sin caracteres, es decir, a los valores numricos, de fecha, de tiempo y de indicacin de fecha y hora. Una correlacin de orden de clasificacin es un archivo delimitado por comas que contiene dos columnas. La columna izquierda es un cdigo de carcter nico (en una codificacin nica o de varios bytes, segn convenga). Utilice un carcter de escape para entrar caracteres delimitadores y valores de bytes arbitrarios. La columna derecha es un valor entero que utiliza caracteres ASCII para los dgitos decimales. La columna contiene el peso numrico utilizado al comparar los correspondientes caracteres en dos series. Cuanto ms bajo sea el nmero, ms pronto ordenar. Si dos caracteres tienen el mismo peso, entonces se consideran equivalentes. Cualquier carcter que no est en la correlacin se considera ms alto que cualquier otro carcter dentro de la correlacin. Por ejemplo, la siguiente correlacin de secuencia contiene estas columnas delimitadas por comas: a,3 b,3 c,3 d,5 g,6 e,1 Por ejemplo, puede proporcionar una correlacin de orden de clasificacin para especificar la secuencia de correlacin del alfabeto francs.

Propiedades de etapa
La tabla siguiente incluye estas cabeceras de columna: v Solicitud es el texto que el diseador de trabajo puede ver en la interfaz de usuario del editor de etapas. v Valor predeterminado es el texto que se utiliza si el diseador del trabajo no suministra ningn valor. v Descripcin describe las propiedades.

106

Gua del desarrollador de Server Job

La etapa Sort soporta las siguientes propiedades de etapa:


Tabla 18. Propiedades de la etapa Sort Solicitud Especificaciones de ordenacin Predeterminada Ninguno Descripcin Los criterios segn los que se ordenan los caracteres ASCII en las filas ledas desde el enlace de entrada. Consulte "Criterios de ordenacin" para obtener ms informacin. El nmero mximo de filas (de 2 a 50.000) que se pueden ordenar en la memoria virtual. Cuanto ms pequea sea la fila, ms filas se podrn ordenar. El nombre de la va de acceso donde se almacenan los archivos temporales creados durante la ordenacin. Si no especifica un nombre de va de acceso, se utiliza el directorio de trabajo actual en el sistema que hospeda la capa de motor. El carcter simple que se utiliza en archivos de correlacin de orden de clasificacin para especificar caracteres de control. Controla el tipo de informacin de rastreo que se aade al registro. Los niveles de rastreo disponibles son: 0 Sin rastreo 1 Propiedades de etapa 2 Rendimiento 4 Sucesos importantes Puede combinar los niveles de rastreo. Por ejemplo, un nivel de rastreo de 3 significa que las propiedades de la etapa y los mensajes de rendimiento se aaden al registro. Ordenacin estable No Indica si la ordenacin es una ordenacin estable. Una ordenacin estable conserva el orden de las filas de entrada que son equivalentes. El carcter simple que separa dos columnas en cada lnea del archivo de correlacin de orden de clasificacin. Nmero mximo de archivos que se pueden abrir a la vez. Cuanto mayor sea el valor, mejor ser el rendimiento. Cuando se utiliza una o varias de estas instancias de la etapa en el trabajo, el nmero total de archivos abiertos de todas las instancias de la etapa no deber exceder 20.

Filas mx. en memoria virtual

10.000

Directorio temporal

Ninguno

Carcter de escape

\ (barra inclinada invertida)

Nivel de rastreo

Separador de columna

, (coma)

Nmero mximo de archivos abiertos 10

Captulo 4. Etapas de trabajo de servidor

107

Etapas Transformer
Las etapas Transformer no extraen ni graban datos en una base de datos de destino. Se utilizan para manejar los datos extrados, realizar las conversiones necesarias y pasar datos a otra etapa Transformer o a una etapa que grabe datos en una tabla de datos de destino.

Utilizacin de una etapa Transformer


Las etapas Transformer pueden tener una cantidad distinta de entradas o salidas. El enlace del origen de entrada de datos principal se designa como enlace de entrada principal. Slo puede haber un enlace de entrada primario, pero puede haber un nmero cualquiera de entradas de referencia. Nota: El editor de la etapa Transformer es parecido para los trabajos de servidor, paralelo y de sistema principal, aunque la funcionalidad vara. En estos temas slo se describe la funcionalidad del trabajo de servidor. Para la funcionalidad de trabajo paralelo o de sistema principal, consulte las guas que describen los trabajos paralelo y de sistema principal. Cuando edita una etapa Transformer, aparece el Editor de transformador. A continuacin, se muestra un ejemplo de etapa Transformer. En este ejemplo, se han definido metadatos para los enlaces de entrada y salida:

Componentes del editor de transformadores


El editor de transformadores contiene los componentes siguientes.

108

Gua del desarrollador de Server Job

Barra de herramientas
La barra de herramientas del Transformador contiene los siguientes botones: v Propiedades de etapa v Restricciones v Mostrar todas o las relaciones seleccionadas v v v v v v v Mostrar/ocultar variables de la etapa Cortar Copiar Pegar Buscar y sustituir Cargar definicin de columna Guardar definicin de columna

v Coincidencia automtica de columnas v Orden de ejecucin de los enlaces de entrada v Orden de ejecucin de los enlaces de salida

rea de enlaces
El rea superior muestra los enlaces hacia y desde la etapa Transformer, donde se pueden ver las columnas y las relaciones entre ellas. El rea de enlaces es donde se definen todas las definiciones de columna, expresiones de clave y variables de etapa. El rea de enlaces est dividida en dos paneles; puede arrastrar la barra divisoria entre ellos para cambiar el tamao de los paneles, que depende el uno del otro. Tambin hay una barra de desplazamiento horizontal que permite desplazar la vista a la izquierda o la derecha. El panel izquierdo muestra los enlaces de entrada y el panel derecho muestra los enlaces de salida. El enlace de entrada que se muestra en la parte superior del panel izquierdo siempre es el enlace primario. Los enlaces siguientes son enlaces de referencia. Para todos los tipos de enlaces, los campos clave se muestran en negrita. Los campos clave del enlace de referencia que no tienen ninguna expresin definida aparecen en rojo (o el color definido en Herramientas > Opciones), al igual que las columnas de salida que no tienen ninguna derivacin definida. En el Editor de transformador, slo se puede seleccionar un enlace a la vez. Cuando se selecciona, se resalta la barra de ttulo del enlace y las puntas de flecha indican las columnas seleccionadas.

rea de metadatos
El rea inferior muestra los metadatos de columna de los enlaces de entrada y de salida. De nuevo, esta rea se divide en dos paneles: el izquierdo muestra los metadatos del enlace de entrada y el derecho muestra los metadatos del enlace de salida. Los metadatos correspondientes a cada enlace se muestran en una cuadrcula incluida en una pgina tabulada. Pulse el separador para traer al frente al enlace necesario. Este enlace tambin se selecciona en el rea de enlaces. Si selecciona un enlace en el rea de enlaces, el separador de metadatos se traer al frente automticamente.

Captulo 4. Etapas de trabajo de servidor

109

Las cuadrculas se pueden editar para cambiar los metadatos de columnas de cualquiera de los enlaces. Tambin puede aadir y suprimir metadatos.

Mens de atajos
Los mens de atajos del Editor de transformador se muestran pulsando con el botn derecho del ratn sobre los enlaces en el rea de enlaces. Los mens varan ligeramente, dependiendo de si pulsa un enlace de entrada, un enlace de salida o una variable de etapa. El men del enlace de entrada ofrece operaciones en las expresiones de clave, el men del enlace de salida ofrece operaciones en las derivaciones y el men de la variable de etapa ofrece operaciones en las variables de etapa. El men de atajos permite: v Abrir el recuadro de dilogo Propiedades para especificar una descripcin del enlace. v Abrir el recuadro de dilogo Restricciones para especificar una restriccin (slo est disponible para los enlaces de salida). v v v v v v v Abrir el recuadro de dilogo Coincidencia automtica de columnas. Mostrar el recuadro de dilogo Buscar y sustituir. Mostrar el recuadro de dilogo Seleccionar. Editar, validar o borrar una expresin de clave, una derivacin o una variable de etapa. Editar varias derivaciones en una operacin. Aadir una nueva columna o variable de etapa al enlace seleccionado. Seleccionar todas las columnas en un enlace.

v Insertar o suprimir columnas o variables de etapa. v Cortar, copiar y pegar una columna, una expresin de clave, una derivacin o una variable de etapa. Si muestra el men desde el rea de enlaces en segundo plano, puede: v Abrir el recuadro de dilogo Propiedades de la etapa para especificar una subrutina anterior o posterior a la etapa. v Abrir el recuadro de dilogo Restricciones para especificar una restriccin para el enlace de salida seleccionado. v Abrir el recuadro de dilogo Orden de ejecucin de los enlaces para especificar el orden en el que se deben procesar los enlaces. v Conmutar entre ver relaciones de enlace para todos los enlaces o slo para el enlace seleccionado. v Conmutar entre mostrar u ocultar las variables de etapa. Si pulsa con el botn derecho del ratn sobre el rea de metadatos del Editor de transformador, se abren los men de atajos de edicin de cuadrcula estndar.

Conceptos bsicos de la etapa Transformer


Cuando edita por primera vez una etapa Transformer, es muy probable que ya haya definido qu datos se especifican en la etapa en los enlaces de entrada. Utilizar el Editor de transformador para definir los datos que generar la etapa y cmo se transformarn. (Puede definir los datos de entrada utilizando el Editor de transformador si es necesario). En esta seccin se explican algunos de los conceptos bsicos para utilizar la etapa Transformer.

Enlaces de entrada
El origen de datos principal est unido a la etapa Transformer a travs del enlace primario, pero la etapa tambin puede tener un nmero cualquiera de enlaces de entrada de referencia.

110

Gua del desarrollador de Server Job

Un enlace de referencia representa una bsqueda de tabla. Se utilizan para suministrar informacin que puede afectar a la forma de cambiar los datos, pero no proporcionan los datos que deben modificarse. Las columnas de entrada de referencia pueden designarse como campos de clave. Puede especificar las expresiones de clave que se utilizan para evaluar los campos de clave. El uso ms comn de la expresin de clave es para especificar un equijoin, que es un enlace entre una columna de enlace primario y una columna de enlace de referencia. Por ejemplo, si los datos de entrada primarios contienen nombres y direcciones, y una entrada de referencia contiene nombres y nmeros de telfono, la columna nombre del enlace de referencia se marca como un campo de clave y la expresin de clave hace referencia a la columna nombre del enlace primario. Durante el proceso, el nombre en la entrada primaria se busca en la entrada de referencia. Si los nombres coinciden, los datos de referencia se consolidan con los datos primarios. Si los nombres no coinciden, es decir, si no hay ningn registro en la entrada de referencia que coincida con la expresin proporcionada, todas las columnas especificadas para la entrada de referencia se establecen en el valor nulo. Cuando un enlace de referencia se origina en una etapa UniVerse o ODBC, puede buscar mltiples filas desde la tabla de referencia. Las filas se especifican mediante una clave fornea, por oposicin a la clave primaria que se utiliza para la bsqueda de filas individuales.

Enlaces de salida
Puede tener un nmero cualquiera de enlaces de salida de la etapa Transformer. Si lo desea, puede pasar algunos datos directamente a travs de la etapa Transformer sin modificarlos, pero es muy probable que desea transformar los datos de algunas columnas de entrada antes de pasarlos a la etapa Transformer. Para especificar una operacin de este tipo, escriba una expresin BASIC o seleccione una transformacin para aplicarla a los datos. IBM InfoSphere DataStage tiene varias transformaciones incorporadas, o bien puede definir sus propias transformaciones personalizadas que se almacenan en el repositorio y pueden reutilizarse segn sea necesario. El origen de una columna del enlace de salida se define en la celda Derivacin de dicha columna con el editor de transformador. Puede utilizar el editor de expresiones para especificar expresiones o transformaciones en esta celda. Tambin puede arrastrar simplemente una columna de entrada a la celda Derivacin de la columna de salida, para pasar los datos directamente a travs de la etapa Transformer. Asimismo, para especificar detalles de derivacin para columnas de salida individuales, tambin puede especificar restricciones que operen en enlaces de salida completos. Una restriccin es una expresin BASIC que especifica criterios que los datos deben cumplir antes de que puedan pasarse al enlace de salida. Tambin puede especificar un enlace de rechazo, que es un enlace de salida que transporta todos los datos no generados en otros enlaces, es decir, las columnas que no cumplen los criterios. Cada enlace de salida se procesa uno a uno. Si la expresin de restriccin se evala en TRUE para una fila de entrada, la fila de datos se genera en dicho enlace. Y a la inversa, si una expresin de restriccin se evala en FALSE para una fila de entrada, la fila de datos no se genera en dicho enlace. Las expresiones de restriccin en distintos enlaces son independientes. Si tiene ms de un enlace de salida, una fila de entrada puede hacer que se genere una fila de datos a partir de algunos enlaces de salida, de ninguno o de todos. Por ejemplo, si considera los datos que provienen de una tienda de pintura, puede incluir informacin sobre un nmero cualquiera de distintos colores. Si desea separar los colores en archivos diferentes, deber configurar distintas restricciones. Puede generar la informacin sobre la pintura verde y azul en LinkA, la pintura roja y amarilla en LinkB, y la pintura negra en LinkC.

Captulo 4. Etapas de trabajo de servidor

111

Cuando una fila de entrada contiene informacin sobre la pintura amarilla, la expresin de restriccin LinkA se evala en FALSE y la fila no se genera en LinkA. No obstante, los datos de entrada cumplen el criterio de restriccin de LinkB y las filas se generan en LinkB. Si los datos de entrada contienen informacin sobre la pintura blanca, esta no cumple ninguna restriccin y no se genera la fila de datos en los enlaces A, B o C, pero s se generar en el enlace de rechazo. El enlace de rechazo se utiliza para direccionar datos a una tabla o un archivo que sirve de "contenedor comodn" para las filas que no se generan en ningn otro enlace. La tabla o el archivo que contiene estos rechazos se representa en otra etapa del diseo de trabajo.

Rutinas anteriores y posteriores a la etapa


Como la etapa Transformer es un tipo de etapa activa, puede especificar rutinas para ejecutarlas antes o despus de que la etapa haya procesado los datos. Por ejemplo, puede utilizar una rutina anterior a la etapa para preparar los datos antes de que se inicie el proceso. Puede utilizar una rutina posterior a la etapa para enviar un mensaje electrnico cuando la etapa haya finalizado.

Edicin de las etapas Transformer


El editor de transformador permite realizar las siguientes operaciones en una etapa Transformer: v Crear columnas nuevas en un enlace v Suprimir columnas de un enlace v Mover columnas en un enlace v Editar metadatos de columnas v Definir derivaciones de columna de salida v v v v v Definir expresiones de clave de columna de entrada Especificar subrutinas anteriores y posteriores a la etapa Definir restricciones de enlace y manejar rechazos Especificar el orden en el que se procesan los enlaces Definir variables de la etapa local

Utilizacin de arrastrar y soltar


Muchas de las ediciones de la etapa Transformer pueden realizarse de forma ms sencilla utilizando la funcionalidad de arrastrar y soltar del editor de transformador. Puede arrastrar columnas desde un enlace cualquiera a otro enlace.

Acerca de esta tarea


Los usos ms comunes son: v Copiar columnas de entrada en enlaces de salida v Mover columnas en un enlace v Copiar derivaciones en enlaces de salida v Copiar expresiones de clave en enlaces de entrada.

Procedimiento
1. Pulse la celda de origen para seleccionarla. 2. Vuelva a pulsar la celda seleccionada y, sin soltar el botn del ratn, arrastre el puntero del ratn a la ubicacin deseada en el enlace de destino. Aparece un punto de insercin en el enlace de destino para indicar dnde ir la nueva celda. 3. Suelte el botn del ratn para soltar la celda seleccionada.

112

Gua del desarrollador de Server Job

Resultados
Puede arrastrar varias columnas, expresiones de clave o derivaciones. Utilice las teclas estndar del Explorador cuando seleccione las celdas de la columna de origen y contine como para una celda individual. Puede arrastrar y soltar el conjunto completo de columnas arrastrando el ttulo del enlace. Puede aadir una columna al final de una derivacin o una expresin de clave existente manteniendo pulsada la tecla Control cuando arrastre la columna.

Recursos de Buscar y sustituir


Si trabaja en un trabajo complejo donde hay varios enlaces, de varias columnas cada uno, que entran y salen en la etapa Transformer, puede utilizar el recurso de buscar y sustituir columna para localizar una determinada columna o expresin y cambiarla. El recurso de buscar y sustituir permite: v Buscar y sustituir un nombre de columna v Buscar y sustituir el texto de una expresin v Buscar la siguiente expresin vaca v Buscar la siguiente expresin que contenga un error Para utilizar los recursos de buscar y sustituir, abra el recuadro de dilogo Buscar y sustituir de la siguiente manera: v Pulse el botn Buscar y sustituir en la barra de herramientas v Elija Buscar y sustituir en el men de atajos v Pulse Control-F El recuadro de dilogo Buscar y sustituir tiene tres separadores: v Texto de la expresin. Permite localizar la aparicin de una determinada serie en una expresin y sustituirla si es necesario. Puede buscar hacia arriba o hacia abajo, y elegir que coincidan maysculas y minsculas, que coincidan palabras completas o ninguna de estas opciones. Tambin puede elegir sustituir todas las apariciones de la serie en una expresin. v Nombres de columna. Permite buscar una determinada columna y cambiarle el nombre si es necesario. Puede buscar hacia arriba o hacia abajo, y elegir que coincidan maysculas y minsculas, que coincida la palabra completa o ninguna de estas opciones. v Tipos de expresin. Permite buscar la siguiente expresin vaca o la siguiente expresin que contenga un error. Tambin puede pulsar Control-M para buscar la siguiente expresin vaca o Control-N para buscar la siguiente expresin errnea. Nota: Los resultados de buscar y sustituir se muestran en el color especificado en Herramientas > Opciones. Pulse F3 para repetir la ltima bsqueda que ha realizado sin abrir el recuadro de dilogo Buscar y sustituir.

Recursos de seleccin
Si trabaja en un trabajo complejo donde hay varios enlaces, de varias columnas cada uno, que entran y salen en la etapa Transformer, puede utilizar el recurso de seleccin de columna para seleccionar varias columnas. Este recurso tambin est disponible en los separadores Correlacin de algunas etapas de trabajo paralelo.

Captulo 4. Etapas de trabajo de servidor

113

El recurso de seleccin permite: v Seleccionar todas las columnas/variables de etapa cuyas expresiones contengan texto que coincide con el texto especificado. v Seleccionar todas las columnas/variables de etapa cuyo nombre contenga el texto especificado (y, de manera opcional, coincida con un tipo especificado). v Seleccionar todas las columnas/variables de etapa con un determinado tipo de datos. v Seleccionar todas las columnas con expresiones no vlidas o que faltan. Para poder utilizar los recursos de seleccin, elija Seleccionar en el men de atajos del enlace. Aparece el recuadro de dilogo Seleccionar. Tiene tres separadores: v Texto de la expresin. Este separador Texto de la expresin permite seleccionar todas las columnas/variables de etapa cuyas expresiones contengan texto que coincide con el texto especificado. El texto especificado es una coincidencia de texto simple, que tiene en cuenta el valor de Coincidencia de maysculas y minsculas. v Nombres de columna. El separador Nombres de columna permite seleccionar todas las columnas/variables de etapa cuyo nombre contenga el texto especificado. Hay una lista desplegable adicional, Tipo de datos, que limitar las columnas seleccionadas a aquellas con dicho tipo de datos. Puede utilizar la lista desplegable Tipo de datos por s sola para seleccionar todas las columnas de un determinado tipo de datos. Por ejemplo, puede seleccionar todas las columnas de serie dejando el campo de texto en blanco y seleccionar Serie como tipo de datos. Los tipos de datos de la lista son tipos de datos genricos y cada uno de los tipos de datos SQL de columna pertenece a uno de estos tipos genricos. v Tipos de expresin. El separador Tipos de expresin permite seleccionar todas las columnas que contengan expresiones vacas o expresiones que no sean vlidas.

Especificacin del enlace de entrada primario


El primer enlace a una etapa Transformer siempre se designa como el enlace de entrada primario. No obstante, puede elegir otro enlace para que sea al enlace primario si es necesario.

Procedimiento
1. Seleccione el enlace de entrada primario actual en la ventana Diagrama. 2. Seleccione Convertir en referencia en el men de atajos de la ventana Diagrama. 3. Seleccione el enlace de referencia que desea que sea el nuevo enlace de entrada primario. 4. Seleccione Convertir en secuencia en el men de atajos de la ventana Diagrama.

Creacin y supresin de columnas


Acerca de esta tarea
Puede crear columnas en los enlaces de la etapa Transformer utilizando cualquiera de los mtodos siguientes: v Seleccione el enlace y, a continuacin, pulse el botn Cargar definicin de columna en la barra de herramientas para abrir el recuadro de dilogo de carga de columnas estndar. v Utilice las funciones de arrastrar y soltar o copiar y pegar para crear una nueva columna copindola de una columna existente en otro enlace. v Utilice los mens de atajo para crear una nueva definicin de columna. v Edite las cuadrculas en el separador de metadatos del enlace para insertar una nueva columna. Cuando copia columnas, se crea una nueva columna con los mismos metadatos que la columna desde la que se ha copiado. Para suprimir una columna desde el editor de transformador, seleccione la columna que desee suprimir y pulse Cortar o elija Suprimir columna en el men de atajos.

114

Gua del desarrollador de Server Job

Movimiento de columnas en un enlace


Acerca de esta tarea
Puede mover las columnas en un enlace utilizando arrastrar y soltar o cortar y pegar. Seleccione la columna necesaria y arrstrela a su nueva ubicacin, o crtela y pguela en su nueva ubicacin.

Edicin de metadatos de columna


Acerca de esta tarea
Puede editar los metadatos de columna desde la cuadrcula en la parte inferior del editor de transformador. Seleccione el separador de los metadatos de enlace que desee editar y, a continuacin, utilice los controles estndar de la cuadrcula de edicin de IBM InfoSphere DataStage. Los metadatos mostrados no incluyen las derivaciones de columna ni las expresiones de clave, ya que se editan en el rea de enlaces.

Definicin de derivaciones de columna de salida


Puede definir la derivacin de las columnas de salida desde el editor de transformador de cinco formas: v Si necesita que se derive una nueva columna de salida directamente de una columna de entrada sin que se realice ninguna transformacin, puede arrastrar o copiar una columna de entrada en un enlace de salida. Las columnas de salida tendrn los mismos nombres que las columnas de entrada de las que se derivan. v Si la columna de salida ya existe, puede arrastrar o copiar una columna de entrada en el campo Derivacin de la columna de salida. Esto especifica que la columna se deriva directamente de una columna de entrada sin que se realice ninguna transformacin. v Puede utilizar el recurso de coincidencia automtica de columnas para establecer automticamente que las columnas de salida se deriven de las columnas de entrada coincidentes. v Es posible que necesite que una derivacin de columna de enlace de salida sea la misma que otra derivacin de columna de enlace de salida. En este caso, puede arrastrar o copiar la celda de derivacin de una columna a otra. v En muchos casos, necesitar transformar los datos antes de derivar una columna de salida de ellos. Para ello, utilice el editor de expresiones. Para mostrar el editor de expresiones, efecte una doble pulsacin en la celda Derivacin de la columna de enlace de salida necesaria. (Tambin puede invocar el editor de expresiones utilizando el men de atajos o las teclas de atajo). Si una derivacin aparece en rojo (o el color definido en Herramientas > Opciones), significa que el editor de transformador la considera incorrecta. (En algunos casos, simplemente significa que la derivacin no cumple estrictamente las reglas del patrn de uso del motor de servidor, pero funcionar correctamente). Si una columna de enlace de salida tiene definida una derivacin que contiene las columnas de enlace de entrada, se dibuja una lnea de relacin entre la columna de entrada y la columna de salida. Puede haber varias lneas de relacin que entran o salen de las columnas. Utilice el botn de la barra de herramientas para elegir si desea ver las relaciones de todos los enlaces o slo las relaciones de los enlaces seleccionados. Recurso de coincidencia automtica de columnas: Esta caracterstica permite ahorrar tiempo y establecer automticamente las columnas en un enlace de salida para derivarlas de las columnas coincidentes en un enlace de entrada. Con esta caracterstica, puede rellenar todas las derivaciones de enlace de salida para direccionar los datos de las columnas de entrada correspondientes, y volver atrs y editar las columnas de enlace de salida individuales en las que desee una derivacin diferente.

Captulo 4. Etapas de trabajo de servidor

115

Procedimiento 1. Abra el recuadro de dilogo Coincidencia automtica de columnas utilizando uno de los mtodos siguientes: v Pulse el botn Coincidencia automtica de columnas en la barra de herramientas del editor de transformador. v Elija Coincidencia automtica en el men de atajos de la cabecera del enlace de entrada o la cabecera del enlace de salida. 2. Elija en las listas el enlace de entrada o el enlace de salida para el que desee hacer coincidir las columnas. 3. Pulse Coincidencia de ubicacin o Coincidencia de nombre en el rea Tipo de coincidencia. Si selecciona Coincidencia de ubicacin, se establecern las derivaciones de las columnas de salida en las columnas del enlace de entrada en las posiciones equivalentes. Se empieza por la primera columna del enlace de entrada que va a la primera columna del enlace de salida y contina avanzando hasta que no quedan columnas de entrada. Si elige Coincidencia de nombre, deber especificar ms informacin para las columnas de entrada y salida de la siguiente manera: v Columnas de entrada: Coincidencia de todas las columnas o Coincidencia de las columnas seleccionadas. Seleccione una de estas opciones para especificar si se deben buscar coincidencias en todas las columnas del enlace de entrada o slo en las seleccionadas actualmente en el enlace de entrada. Omitir prefijo. De manera opcional, especifica los caracteres que van delante del nombre de la columna que se deben pasar por alto durante el procedimiento de coincidencia. Omitir sufijo. De manera opcional, especifica los caracteres que van al final del nombre de la columna que se deben pasar por alto durante el procedimiento de coincidencia. v Columnas de salida: Omitir prefijo. De manera opcional, especifica los caracteres que van delante del nombre de la columna que se deben pasar por alto durante el procedimiento de coincidencia. Omitir sufijo. De manera opcional, especifica los caracteres que van al final del nombre de la columna que se deben pasar por alto durante el procedimiento de coincidencia. v Omitir maysculas y minsculas. Seleccione este recuadro de seleccin para especificar que la distincin entre maysculas y minsculas se debe pasar por alto al buscar coincidencias de nombres. Este valor tambin afecta a los valores de Omitir prefijo y Omitir sufijo. Por ejemplo, si especifica que el prefijo IP se pasar por alto y activa Omitir maysculas y minsculas, se pasar por alto IP e ip. 4. Pulse Aceptar para proseguir con la coincidencia automtica. Nota: La coincidencia automtica no tiene en cuenta la incompatibilidad de tipos de datos entre las columnas que relacionadas; las derivaciones se establecen independientemente.

Edicin de varias derivaciones


Acerca de esta tarea
Para realizar ediciones en varias derivaciones de variable de etapa o columna de salida, seleccione Sustitucin de derivacin... en el men de atajos. Se abrir el recuadro de dilogo Sustitucin de expresiones. El recuadro de dilogo Sustitucin de expresiones permite realizar el mismo cambio en las expresiones de todas las columnas seleccionadas actualmente en un enlace. Por ejemplo, si desea aadir una llamada a la funcin trim() alrededor de todas las expresiones de columna de salida de serie de un enlace, puede hacerlo en dos pasos. En primer lugar, utilice el recuadro de dilogo Seleccionar para seleccionar todas

116

Gua del desarrollador de Server Job

las columnas de salida de la serie. A continuacin, utilice el recuadro de dilogo Sustitucin de expresiones para aplicar una llamada trim() alrededor de cada uno de los valores de expresin existentes en las columnas seleccionadas. Puede elegir entre la sustitucin de la expresin completa o la sustitucin de una parte de la expresin. Expresin completa: Con esta opcin, la expresin completa existente de cada columna se sustituye por el valor de sustitucin especificado. Acerca de esta tarea El valor de sustitucin puede ser un valor completamente nuevo, pero normalmente ser un valor basado en el valor de la expresin original. Cuando se especifica el valor de sustitucin, el valor existente de la expresin de la columna puede incluirse en este nuevo valor incluyendo "$1". El valor puede incluirse varias veces. Por ejemplo, si aade una llamada trim() alrededor de cada expresin del conjunto de columnas seleccionado actualmente y selecciona las columnas necesarias, debe utilizar este procedimiento: Procedimiento 1. Seleccione la opcin Expresin completa. 2. Especifique un valor de sustitucin:
trim($1)

3. Pulse Aceptar Resultados Si la expresin original de una columna era:


DSLink3.col1

Se sustituir por:
trim(DSLink3.col1)

Esto se aplicar a las expresiones de cada una de las columnas seleccionadas. Si necesita incluir el texto real $1 en la expresin, especifquelo como "$$1". Parte de la expresin: Acerca de esta tarea Con esta opcin, slo se sustituye una parte de cada expresin seleccionada, en lugar de la expresin completa. La parte de la expresin que se sustituye est especificada por una coincidencia de expresin regular. Es posible que ms de una parte de una serie de una expresin coincida con la expresin regular especificada. Si se selecciona Sustituir todas las apariciones, cada aparicin de una coincidencia se actualizar con el valor de sustitucin especificado. Si no se selecciona, slo se sustituir la primera aparicin. Al sustituir parte de una expresin, el valor de reemplazo especificado puede incluir dicha parte de la expresin original que se est sustituyendo. Para ello, la expresin regular especificada debe tener el valor entre parntesis. "$1" en el valor de sustitucin representar el texto coincidente. Si la expresin regular no se incluye entre parntesis, "$1" ser simplemente el texto "$1".
Captulo 4. Etapas de trabajo de servidor

117

Para el uso de expresiones regulares complejas, se pueden incluir subconjuntos del texto de la expresin regular entre parntesis en lugar de todo el texto. En este caso, toda la parte coincidente de la expresin original seguir sustituida, pero se puede utilizar "$1", "$2", etc. para hacer referencia a cada parte coincidente entre parntesis de la expresin regular especificada. A continuacin, se proporciona un ejemplo de la parte de la sustitucin de la expresin. Supongamos que un conjunto seleccionado de columnas tienen derivaciones que utilizan columnas de entrada de `DSLink3'. Por ejemplo, dos de estas derivaciones pueden ser:
DSLink3.OrderCount + 1 If (DSLink3.Total > 0) Then DSLink3.Total Else -1

Si desea proteger el uso de estas columnas de entrada de los valores nulos, utilice un valor cero en lugar del nulo. Puede utilizar el procedimiento siguiente para realizar esto. Procedimiento 1. Seleccione las columnas para las que desee sustituir expresiones. 2. Seleccione la opcin Parte de la expresin. 3. Especifique un valor de expresin regular:
(DSLink3\.[a-z,A-Z,0-9]*)

Este coincidir con las series que contengan "DSLink3."seguido de varios dgitos o caracteres alfabticos. (Se supone que los nombres de columna de este caso estn formados por dgitos y caracteres alfabticos). Los parntesis entre los que se escribe la expresin completa indican que $1 representar el texto coincidente completo en el valor de sustitucin. 4. Especifique un valor de sustitucin
NullToZero($1)

Este valor sustituye slo las subseries coincidentes en la expresin original por las mismas subseries, pero rodeadas por la llamada NullToZero. 5. Pulse Aceptar para aplicarlo a todas las derivaciones de columna seleccionadas. Resultados En los ejemplos anteriores:
DSLink3.OrderCount + 1

generar
NullToZero(DSLink3.OrderCount) + 1

y
If (DSLink3.Total > 0) Then DSLink3.Total Else -1

generar:
If (NullToZero(DSLink3.Total) > 0) Then DSLink3.Total Else -1

i se selecciona la opcin Sustituir todas las apariciones, la segunda expresin generar:


If (NullToZero(DSLink3.Total) > 0) Then NullToZero(DSLink3.Total) Else -1

El valor de sustitucin puede ser una serie de expresin de cualquier formato. Por ejemplo, en el caso anterior, el valor de sustitucin puede ser:
(If (StageVar1 > 50000) Then $1 Else ($1 + 100))

118

Gua del desarrollador de Server Job

En el primer caso anterior, la expresin


DSLink3.OrderCount + 1

generar:
(If (StageVar1 > 50000) Then DSLink3.OrderCount Else (DSLink3.OrderCount + 100)) + 1

Definicin de expresiones de clave de columna de entrada


Puede definir expresiones de clave para los campos de clave de las entradas de referencia. Este proceso es similar a la definicin de derivaciones para las columnas de salida. En la mayora de los casos, una expresin de clave ser un equijoin de una columna de enlace de entrada primario. Puede especificar un equijoin de dos formas: v Utilice arrastrar y soltar para arrastrar una columna de enlace de entrada primario a la celda de expresin de clave correspondiente. v Utilice copiar y pegar para copiar una columna de enlace de entrada primario y pegarla en la celda de expresin de clave correspondiente. Se crea un enlace de relacin entre la columna de enlace de entrada primario y la expresin de clave. Tambin puede arrastrar o copiar una expresin de clave existente en otra columna de entrada, y arrastrar o copiar varias selecciones. Si necesita una expresin ms compleja que un equijoin, puede efectuar una doble pulsacin en la celda de la expresin de clave necesaria para abrir el editor de expresiones. Si una expresin de clave aparece en rojo (o el color definido en Herramientas > Opciones), significa que el editor de transformador la considera incorrecta. (En algunos casos, simplemente significa que la expresin de clave no cumple estrictamente las reglas del patrn de uso del motor de servidor, pero funcionar correctamente). Inicialmente, las celdas de expresin de clave ocupan una columna muy estrecha. En la mayora de los casos, la lnea de relacin ofrece suficiente informacin sobre la expresin de clave; de lo contrario, puede arrastrar el borde izquierdo de la columna para expandirla.

Definicin de la bsqueda de mltiples filas para las entradas de referencia


Acerca de esta tarea
Cuando un enlace de referencia se origina en una etapa UniVerse o ODBC, puede buscar mltiples filas desde la tabla de referencia. Las filas se seleccionan con una clave fornea, en lugar de con una clave primaria, como ocurre con los enlaces de referencia normales. Para poder utilizar la funcionalidad de mltiples filas, debe definir qu columna o columnas son las claves forneas en los metadatos de columna. Para ello, cambie el atributo Clave de la columna de claves primarias actual por No y, a continuacin, cambie el atributo Clave de la columna o columnas de claves forneas necesarias por S. Las expresiones de clave fornea pueden definirse mediante el editor de expresiones, de la misma forma que las expresiones de clave primaria que se describen en Definicin de expresiones de clave de columna de entrada. Tambin debe especificar que el enlace de referencia utiliza la funcionalidad de mltiples filas. Para ello, abra el recuadro de dilogo Propiedades de la etapa Transformer, vaya al separador General en la pgina Entradas, compruebe que el enlace de entrada de referencia est seleccionado y seleccione el recuadro de dilogo Enlace de referencia con conjunto de resultados en mltiples filas.
Captulo 4. Etapas de trabajo de servidor

119

Especificacin de subrutinas anteriores y posteriores a la etapa


Acerca de esta tarea
Como la etapa Transformer es un tipo de etapa activa, puede especificar rutinas para ejecutarlas antes o despus de que la etapa haya procesado los datos. Para especificar una rutina, pulse el botn de propiedades de la etapa en la barra de herramientas para abrir el recuadro de dilogo Propiedades de la etapa. El separador General contiene los campos siguientes: v Subrutina anterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta antes de que la etapa empiece a procesar datos. v Subrutina posterior a la etapa y Valor de entrada. Contiene el nombre (y el valor) de una subrutina que se ejecuta despus de que la etapa haya procesado los datos. Seleccione una rutina en la lista. Esta lista contiene todas las rutinas integradas definidas como una Subrutina anterior/posterior en la carpeta Rutinas del rbol de repositorio. Entre un valor apropiado para el argumento de entrada de la rutina en el campo Valor de entrada. Si elige una rutina definida en el repositorio, que se ha editado pero que no se ha compilado, un mensaje de aviso le recordar que debe compilar la rutina cuando cierre el recuadro de dilogo Etapa Transformer. Si ha instalado o importado un trabajo, es posible que el campo Subrutina anterior a la etapa o Subrutina posterior a la etapa haga referencia a una rutina que no exista en el sistema. En tal caso, aparecer un mensaje de aviso cuando cierre el recuadro de dilogo. Debe instalar o importar la rutina "ausente" o seleccionar una rutina alternativa que utilizar. Un cdigo de retorno 0 de la rutina indica que ha resultado satisfactoria y cualquier otro cdigo indica que la rutina ha resultado anmala y provoca un error muy grave cuando se ejecuta el trabajo. Si edita un trabajo creado utilizando el Release 1 de IBM InfoSphere DataStage, el campo Subrutina anterior a la etapa o Subrutina posterior a la etapa puede contener el nombre de una rutina creada en el Release 1. Cuando se actualiza InfoSphere DataStage, se identifican estas rutinas y se renombran automticamente. Por ejemplo, si utiliza una subrutina anterior a la etapa denominada BeforeSubr, aparece como BeforeSubr\<Rev1> en el campo Subrutina anterior a la etapa. Puede continuar utilizando estas rutinas. No obstante, como no ha podido especificar valores de entrada para las rutinas en el Release 1 de InfoSphere DataStage, el campo Valor de entrada est sombreado cuando utiliza una de estas rutinas "antiguas".

Definicin de restricciones y manejo de rechazos


Acerca de esta tarea
Puede definir lmites en los datos de salida especificando una restriccin. Las restricciones son expresiones BASIC y puede especificar una restriccin para cada enlace de salida de una etapa Transformer. Tambin puede especificar que un enlace concreto acte como un enlace de rechazo. Los enlaces de rechazo generan filas que no se han grabado en otros enlaces de salida de la etapa Transformer. Para definir una restriccin o especificar un enlace de rechazo, utilice una de las opciones siguientes: v Seleccione un enlace de salida y pulse el botn Restricciones. v Efecte una doble pulsacin en el campo de entrada de restriccin del enlace de salida. v Elija Restricciones en los mens de atajos de cabecera o en segundo plano. Aparecer un recuadro de dilogo que permite definir restricciones en los enlaces de salida de la etapa Transformer o definir un enlace como un enlace de rechazo.

120

Gua del desarrollador de Server Job

Defina una restriccin especificando una expresin BASIC en el campo Restriccin del enlace. A continuacin, las restricciones existentes aparecern debajo de la barra de ttulo del enlace en el Editor de transformacin. Esta expresin de restriccin se comprobar con los datos de fila en el tiempo de ejecucin. Si los datos no cumplen la restriccin, la fila no se grabar en el enlace. Tambin es posible definir un enlace que se puede utilizar para detectar las filas que se han "rechazado" de un enlace anterior. Para definir un enlace de rechazo, seleccione S en el campo Fila de rechazo y establezca el campo Restriccin de la siguiente manera: v Para detectar las filas que se han rechazado en un enlace de salida especfico, establezca el campo Restriccin en nombre_enlace.REJECTED. Esto debe establecerse siempre se rechace una fila en el enlace nombre_enlace, ya sea porque la fila no cumple una restriccin del enlace de salida o porque una operacin de grabacin en el destino falla para la fila. Tenga en cuenta que este tipo de enlace de rechazo debe producirse despus del enlace de salida desde el que se ha definido para detectar los rechazos. v Para detectar las filas que han generado un error de grabacin en un enlace de salida, establezca el campo Restriccin en nombre_enlace.REJECTEDCODE. El valor de nombre_enlace.REJECTEDCODE ser distinto de cero si la fila se ha rechazado debido a un error de grabacin o 0 (DSE.NOERROR) si la fila se ha rechazado porque no se ha cumplido una restriccin de enlace. Cuando edita el campo Restriccin, puede establecer los valores de retorno de nombre_enlace.REJECTEDCODE realizando una seleccin en las opciones de men Variables de enlace Restricciones... del Editor de expresiones. Estos proporcionan un rango de errores, pero tenga en cuenta que la mayora de errores de grabacin devuelven DSE.WRITERROR. Para poder establecer una restriccin de rechazo que diferencie entre un error de grabacin y una restriccin no cumplida, puede utilizarse una combinacin de los distintivos nombre_enlace.REJECTEDCODE y nombre_enlace.REJECTED. Por ejemplo: Para detectar las filas que no se ha podido grabar en un enlace de salida, establezca el campo Restriccin en nombre_enlace.REJECTEDCODE Para detectar las filas que no cumplen una restriccin en un enlace de salida, establezca el campo Restriccin en nombre_enlace.REJECTEDCODE = DSE.NOERROR AND nombre_enlace.REJECTED Para detectar qu filas se han rechazado debido a una restriccin o un error de grabacin, establezca el campo Restriccin en nombre_enlace.REJECTED v Para "detectar todo", el campo Restriccin puede dejarse en blanco. Esto indica que este enlace de rechazo detectar todas las filas que no se han grabado satisfactoriamente en ninguno de los enlaces de salida procesados hasta este punto. Por lo tanto, el enlace de rechazo debe ser el ltimo enlace en el orden de proceso definido. v Puede definirse cualquier otra Restriccin. Esto har que el nmero de filas grabadas en el enlace (es decir, las filas que cumplen la restriccin) se registren en el registro de trabajo como "filas rechazadas". Nota: Debido a la naturaleza del caso "detectar todo" anterior, slo debe utilizar un enlace de rechazo cuyo campo Restriccin est en blanco. Para utilizar varios enlaces de rechazo, debe definirlos para que utilicen el distintivo nombre_enlace.REJECTED detallado en el primer caso anterior.

Especificacin del orden de enlaces


Puede especificar el orden en el que los enlaces de entrada y los enlaces de salida procesan una fila. Para los enlaces de entrada, puede ordenar los enlaces de referencia (el enlace primario siempre se procesa primero). Para los enlaces de salida, puede ordenar todos los enlaces.

Acerca de esta tarea


El orden inicial de los enlaces el orden en el que se aaden a la etapa.

Captulo 4. Etapas de trabajo de servidor

121

Procedimiento
1. Abra el separador Orden de los enlaces del recuadro de dilogo Propiedades de la etapa Transformer de la siguiente manera: v Pulse el botn Orden de ejecucin de los enlaces de entrada o Orden de ejecucin de los enlaces de salida en la barra de herramientas del editor de transformador. v Elija Reordenar enlaces de entrada o Reordenar enlaces de salida en el men de atajos en segundo plano. v Pulse el botn Propiedades de la etapa en la barra de herramientas del transformador o elija Propiedades de la etapa en el men de atajos en segundo plano y pulse el separador Orden de los enlaces de la pgina Etapa. 2. Utilice los botones de flecha para reorganizar la lista de enlaces en el orden de ejecucin necesario. 3. Si est satisfecho con el orden, pulse Aceptar. Nota: Aunque los recursos de orden de los enlaces permiten utilizar una columna de salida anterior para derivar una columna de salida posterior, no se recomienda y recibir un aviso si lo hace.

Definicin de variables de la etapa local


Puede declarar una variable de etapa local.

Acerca de esta tarea


Puede declarar y utilizar sus propias variables en una etapa Transformer. Este tipo de variables son accesibles slo desde la etapa Transformer en la que se declaran. Pueden utilizarse de la siguiente manera: v Se les pueden asignar valores por expresiones. v Pueden utilizarse en expresiones que definen una derivacin de columna de salida. v Las expresiones que evalan una variable pueden incluir otras variables o la propia variable que se est ejecutando. Las variables de etapa que declara se muestran en una tabla en el panel de la derecha del rea de enlaces. La tabla es parecida a un enlace de salida. Para mostrar u ocultar la tabla, pulse el botn Variables de etapa en la barra de herramientas del transformador, o seleccione Variables de etapa en el men de atajos en segundo plano. Las variables de etapa no se muestran en el rea de metadatos del enlace de salida en la parte inferior del panel de la derecha. La tabla muestra las variables de etapa junto con las expresiones utilizadas para derivar sus valores. Las lneas de enlace unen las variables de etapa con las columnas de entrada utilizadas en las expresiones. Los enlaces de la derecha de la tabla enlazan las variables con las columnas de salida que las utilizan.

Procedimiento
1. Abra el recuadro de dilogo Propiedades de la etapa Transformer de la siguiente manera: v Pulse el botn Propiedades de la etapa en la barra de herramientas del transformador. v Seleccione Propiedades de la etapa desde el men de atajos de fondo. 2. Pulse el separador Variables de la pgina General. El separador Variables contiene una cuadrcula que muestra las variables declaradas actualmente, sus valores iniciales y una descripcin opcional. Utilice los controles de la cuadrcula estndar para aadir nuevas variables. Los nombres de variable deben empezar por un carcter alfabtico (a-z, A-Z) y slo pueden contener caracteres alfanumricos (a-z, A-Z, 0-9). Asegrese de que la variable no utilice el nombre de ninguna palabra clave de BASIC.

Resultados
Las variables especificadas en el recuadro de dilogo Propiedades de la etapa aparecen en la tabla Variable de la etapa en el panel de enlaces.

122

Gua del desarrollador de Server Job

En general, puede realizar prcticamente las mismas operaciones en una variable de etapa que en una columna de salida (consulte Definicin de derivaciones de columna de salida en la pgina 115). Un men de tajos ofrece los mismos mandatos. No obstante, no puede pegar una variable de etapa como una nueva columna o una columna como una nueva variable de etapa.

Editor de expresiones de IBM InfoSphere DataStage


El Editor de expresiones de InfoSphere DataStage permite especificar expresiones correctas cuando edita etapas Transformer. Tambin permite definir transformaciones personalizadas en el repositorio (consulte Definicin de transformaciones personalizadas en la pgina 144). El editor de expresiones puede: v Facilitar la entrada de elementos de expresin v Completar los nombres de variables utilizadas frecuentemente v Validar nombres de variables y toda la expresin El Editor de expresiones se puede abrir desde: v Celdas Derivacin del enlace de salida v Celdas Derivacin de la variable de la etapa v Celdas Expresin de clave del enlace de entrada v Recuadro de dilogo Restriccin v Recuadro de dilogo Transformacin en el repositorio

Formato de expresin
El formato de una expresin es el siguiente:
KEY: something_like_this is a token something_in_italics is a terminal, that is, doesnt break down any further | is a choice between tokens [ is an optional part of the construction "XXX" is a literal token (that is, use XXX not including the quotation marks) ================================================= expression ::= function_call | variable_name | other_name | constant | unary_expression | binary_expression | if_then_else_expression | substring_expression | "(" expression ")" function_call ::= function_name "(" [argument_list] ")" argument_list ::= expression | expression "," argument_list function_name ::= name of a built-in function | name of a user-defined_function variable_name ::= job_parameter name | stage_variable_name | link_variable name other_name ::= name of a built-in macro, system variable, and so on constant ::= numeric_constant | string_constant numeric_constant ::= ["+" | "-"] digits ["." [digits]] ["E" | "e" ["+" | "-"] digits] string_constant ::= "" [characters] "" | """ [characters] """ | "\" [characters] "\" unary_expression ::= unary_operator expression unary_operator ::= "+" | "-" binary_expression ::= expression binary_operator expression binary_operator ::= arithmetic_operator |
Captulo 4. Etapas de trabajo de servidor

123

concatenation_operator | matches_operator | relational_operator | logical_operator arithmetic_operator ::= "+" | "-" | "*" | "/" | "^" concatenation_operator ::= ":" matches_operator ::= "MATCHES" relational_operator ::= " =" |"EQ" | "<>" | "#" | "NE" | ">" | "GT" | ">=" | "=>" | "GE" | "<" | "LT" | "<=" | "=<" | "LE" logical_operator ::= "AND" | "OR" if_then_else_expression ::= "IF" expression "THEN" expression "ELSE" expression substring_expression ::= expression "[" [expression ["," expression] "]" field_expression ::= expression "[" expression "," expression "," expression "]" /* Es decir, siempre 3 argumentos

Nota: Las palabras clave "AND", "IF" o "EQ" pueden ir en maysculas o minsculas.

Especificacin de expresiones
Cuando el punto de insercin est en un recuadro de la expresin, puede utilizar el editor de expresiones para sugerir el siguiente elemento de la expresin. Para ello, pulse con el botn derecho del ratn sobre el recuadro o pulse el botn Sugerir a la derecha del recuadro. Se abrir el men Sugerir operando o Sugerir operador. El men que aparece depende del contexto, es decir, de si debe especificar un operando o un operador como siguiente elemento de expresin. Se le ofrecer una seleccin diferente del men Sugerir operando, dependiendo de si est definiendo expresiones de clave, derivaciones y restricciones, o una transformacin personalizada. El men Sugerir operador siempre es el mismo.
Men Sugerir operando: etapa Transformer Macro de DS... Funcin de DS... Constante de DS... Rutina de DS... Transformacin de DS... Parmetro de trabajo... Columna de entrada... Variables de enlace Variables de etapa... Variable del sistema... Serie... Funcin... () Parntesis If Then Else

Men Sugerir operando: definicin de transformaciones personalizadas Macro de DS...

124

Gua del desarrollador de Server Job

Men Sugerir operando: definicin de transformaciones personalizadas Funcin de DS... Constante de DS... Rutina de DS... Argumento de transformacin... Variable del sistema... Serie... Funcin... () Parntesis If Then Else

Men Sugerir operador + * / ^ = <> < <= > >= Concatenar Subserie Coincidencias And Or

Cmo completar los nombres de variables


El Editor de expresiones almacena nombres de variables. Cuando especifica el nombre de una variable que ha utilizado anteriormente, puede escribir los primeros caracteres y pulsar F5. El Editor de expresiones completa el nombre de la variable automticamente. Si especifica el nombre de un enlace de entrada seguido de un punto, por ejemplo, DailySales., el Editor de expresiones muestra una lista de los nombres de columna del enlace. Si contina escribiendo, la seleccin de lista cambia para coincidir con los que escribe. Tambin puede seleccionar un nombre de columna utilizando el ratn. Especifique el nombre de columna seleccionado en la expresin pulsando el Tabulador o Intro. Pulse Esc para descartar la lista sin seleccionar un nombre de columna.

Validacin de la expresin
Si ha especificado una expresin en el editor de transformador, pulse Intro para validarla. El editor de expresiones comprueba que la sintaxis sea correcta y que los nombres de variable utilizados sean aceptables para el compilador. Cuando utilice el editor de expresiones para definir una transformacin personalizada, pulse Aceptar para validar la expresin. Si hay un error, aparece un mensaje y el elemento que causa el error se resalta en el recuadro de la expresin. Puede corregir la expresin o cerrar el editor de transformador o el recuadro de dilogo Transformacin. En el editor de transformador, las expresiones que no son vlidas se muestran en rojo. (En algunos casos, simplemente significa que la expresin no cumple estrictamente las reglas del patrn de uso del motor de servidor, pero funcionar correctamente). Para obtener ms informacin sobre la sintaxis que puede utilizar en una expresin, consulte Captulo 7, Programacin BASIC, en la pgina 149.

Captulo 4. Etapas de trabajo de servidor

125

Cmo salir del Editor de expresiones


Acerca de esta tarea
Puede salir del Editor de expresiones de la siguiente forma: v Pulse Esc (y se descartan los cambios). v Pulse Retorno (y se aceptan los cambios). v Pulse fuera del recuadro del Editor de expresiones (y se aceptan los cambios).

Configuracin del Editor de expresiones


El Editor de expresiones est activado de forma predeterminada. Si prefiere no utilizarlo, puede desactivarlo o utilizar slo caractersticas seleccionadas. El Editor de expresiones se configura editando las opciones del cliente del Diseador. Para obtener ms informacin sobre las opciones del cliente del Diseador, consulte IBM InfoSphere DataStage and QualityStage Designer Client Guide.

Propiedades de la etapa Transformer


La etapa Transformer tiene un recuadro de dilogo Propiedades que permite especificar detalles sobre cmo opera la etapa. El recuadro de dilogo Etapa Transformer tiene tres pginas: v Pgina Etapa. Se utiliza para especificar informacin general sobre la etapa. v Pgina Entradas. Aqu se especifican los detalles sobre la entrada de datos en la etapa Transformer. v Pgina Salidas. Aqu se especifican los detalles sobre los enlaces de salida de la etapa Transformer.

Pgina Etapa
La pgina Etapa tiene cuatro separadores: v General. Permite introducir una descripcin opcional de la etapa y especificar una subrutina anterior o posterior a la etapa. v Variables. Permite configurar variables de etapa para utilizarlas en la etapa. v Orden de los enlaces. Permite especificar el orden en el que se procesarn los enlaces de salida. El separador General se describe en Rutinas anteriores y posteriores a la etapa en la pgina 112. El separador Variables se describe en Definicin de variables de la etapa local en la pgina 122. El separador Orden de los enlaces se describe en Especificacin del orden de enlaces en la pgina 121.

Pgina Entradas
La pgina Entradas permite especificar detalles sobre los datos que llegan a la etapa Transformer. La etapa Transformer slo puede tener un enlace de entrada. El separador General permite especificar una descripcin opcional del enlace de entrada.

Pgina Salidas
La pgina Salidas tiene un separador General que permite especificar una descripcin opcional para cada uno de los enlaces de salida en la etapa Transformer.

126

Gua del desarrollador de Server Job

Captulo 5. Depuracin y compilacin de un trabajo


Estos temas describen cmo crear un trabajo ejecutable. Cuando haya instalado todas las etapas en un diseo de trabajo, podr crear un trabajo ejecutable compilando el diseo de trabajo. El depurador ayuda a eliminar cualquier problema del diseo. Posteriormente, el trabajo se puede validar y ejecutar utilizando el cliente del Director.

El depurador de IBM InfoSphere DataStage


El depurador de InfoSphere DataStage proporciona recursos bsicos para probar y depurar los diseos de trabajo de servidor.

Acerca de esta tarea


El depurador se ejecuta desde el cliente del Diseador. Puede utilizarse desde distintos lugares en el cliente del Diseador: v Men Depurar (Depurar) v Barra de herramientas Depurar v Men de atajos (algunos mandatos). El depurador permite establecer puntos de interrupcin en los enlaces del trabajo. Cuando ejecuta el trabajo en la modalidad de depuracin, el trabajo se detendr cuando alcance un punto de interrupcin. A continuacin, puede pasar a la siguiente accin (lectura o grabacin) en el enlace, o pasar al proceso en la siguiente fila de datos (que puede estar en el mismo enlace o en otro). Los puntos de interrupcin que ha establecido permanecen si el trabajo se cierra y se vuelve a abrir. Los puntos de interrupcin se validan cuando se compila el trabajo y permanecen vlidos si el enlace al que pertenecen se mueve, termina de moverse o se renombra. No obstante, si se suprime un enlace y se crea otro con el mismo nombre, el nuevo enlace no hereda el punto de interrupcin. Los puntos de interrupcin no se heredan cuando un trabajo se guarda con otro nombre, se exporta o se actualiza. Nota: Tenga cuidado cuando depure trabajos que ejecuten procesos paralelos (utilizando etapas IPC o enlaces de activo a activo entre procesos). No puede establecer puntos de interrupcin en ms de un proceso a la vez. Para asegurarse de que esto no ocurre, slo debe establecer un punto de interrupcin cada vez en estos trabajos.

Para aadir un punto de interrupcin:


Procedimiento
1. Seleccione el enlace necesario. 2. Elija Conmutar punto de interrupcin en el men Depurar o la barra de herramientas Depurar. El punto de interrupcin puede eliminarse posteriormente seleccionado Conmutar punto de interrupcin otra vez.

Resultados
Aparece un crculo en el enlace para indicar que se ha aadido un punto de interrupcin. Elija Editar puntos de interrupcin en el men Depurar o pulse Editar puntos de interrupcin en la barra de herramientas Depurar para abrir el recuadro de dilogo Editar puntos de interrupcin y configurar el punto de interrupcin.

Copyright IBM Corp. 1997, 2011

127

No puede colocar un punto de interrupcin en un enlace que tenga un contenedor como etapa de origen. En su lugar, debe colocar el punto de interrupcin en el mismo enlace que se representa en la propia vista del contenedor. El enlace slo mostrar que tiene un punto de interrupcin en la vista del contenedor. Para obtener ms informacin, consulte el apartado Depuracin de los contenedores compartidos en la pgina 129. La Ventana de depuracin permite ver las variables en la lista de observaciones y las variables en contexto cuando se detiene un punto de interrupcin. La Ventana de depuracin est visible cuando se selecciona Depurar > Ventana de depuracin. Siempre aparece sobre la ventana del cliente del Diseador. Si pulsa con el botn derecho del ratn sobre la Ventana de depuracin, aparece un men de atajos que contiene los mismos elementos que el men Depurar. La Ventana de depurador tiene dos paneles de visualizacin. Puede arrastrar la barra divisora entre los dos paneles para redimensionar los paneles. La ventana tambin proporciona informacin sobre el estado del trabajo y el depurador. El panel superior muestra variables locales. Antes de iniciar la depuracin, se muestran todas las columnas de todos los enlaces del trabajo, y todas se marcan como "Fuera de contexto". Durante la depuracin, el panel muestra slo las variables que hay en contexto cuando se detiene el trabajo en el punto de interrupcin. Muestra los nombres y los valores de las variables que hay actualmente en contexto. Puede aadir las variables en contexto que desee a la lista de observaciones, que mantiene un registro de las variables seleccionadas el tiempo que sea necesario. El panel inferior muestra las variables de la lista de observaciones. Cuando las variables estn en contexto, sus valores se muestran y se actualizan en cada punto de interrupcin. Cuando variables no estn en contexto, se marcan como "Fuera de contexto". La lista de observaciones se guarda entre las distintas sesiones.

Para aadir una variable a la lista de observaciones:


Procedimiento
1. Seleccione el nombre de la variable en el panel superior de la Ventana de depuracin. 2. Pulse Aadir observacin. La variable se aadir a la lista de observaciones y aparecer en el panel inferior.

Para suprimir variables de la lista de observaciones, seleccione las variables y pulse Eliminar observacin.
Acerca de esta tarea
Los siguientes mandatos estn disponibles en el men Depurar o la barra de herramientas Depurar: v Trabajo de destino. Selecciona el trabajo que se va a depurar. Slo puede depurarse un trabajo cada vez. Una vez depurado un trabajo, el trabajo en la lista Trabajo de destino no estar disponible. v Ir. Ejecuta el trabajo actual en la modalidad de depuracin, compilndolo primero si es necesario. En la modalidad de depuracin, el trabajo se ejecutar hasta que se encuentre un punto de interrupcin. A continuacin, se detiene en la modalidad de interrupcin, lo que permite interactuar con el trabajo. La primera vez que se utiliza Ir despus de compilar o cargar un trabajo, aparece el recuadro de dilogo Opciones de ejecucin del trabajo, que permite recopilar los valores de parmetro necesarios o los lmites de tiempo de ejecucin. v Pasar al siguiente enlace. El trabajo se ejecuta hasta que se produce la siguiente accin en un enlace (lectura o grabacin), cuando se detiene en modalidad de interrupcin. v Pasar a la siguiente fila. El trabajo se ejecuta hasta que se procesa la siguiente fila o hasta que se encuentra otro enlace con un punto de interrupcin, lo que ocurra primero. A continuacin, el trabajo

128

Gua del desarrollador de Server Job

se detiene en modalidad de interrupcin. Si el trabajo no se ha detenido actualmente en un punto de interrupcin en un enlace (por ejemplo, si no ha empezado a depurar todava o se ha detenido en un aviso), se ejecutar como Pasar al siguiente enlace. v Detener trabajo. Slo est disponible en la modalidad de interrupcin. Detiene el trabajo y sale de la modalidad de interrupcin. v Parmetro de trabajo... Permite especificar parmetros de trabajo para cuando se ejecuta el trabajo en modalidad de depuracin. Si selecciona esta opcin, se invoca el recuadro de dilogo Opciones de ejecucin del trabajo, que permite especificar los parmetros necesarios o los lmites de tiempo de ejecucin del trabajo. El elemento se inhabilita cuando se inicia el trabajo en modalidad de depuracin. v Editar puntos de interrupcin... Permite editar los puntos de interrupcin existentes o aadir otros nuevos. v Conmutar punto de interrupcin. Permite establecer o borrar un punto de interrupcin en el enlace seleccionado. Si un enlace tiene un conjunto de puntos de interrupcin (indicado por un crculo negro en el origen de enlace), Conmutar punto de interrupcin borra el punto de interrupcin. Si el enlace no tiene ningn punto de interrupcin, se aade uno que especifica una detencin en cada fila procesada. v Borrar todos los puntos de interrupcin. Suprime todos los puntos de interrupcin definidos para todos los enlaces. v Ver registro de trabajo. Seleccione esta opcin para abrir el cliente del Director con el trabajo actual abierto en la vista de registro de trabajo (el trabajo debe haberse guardado en el cliente del Diseador en algn punto para que esto funcione). v Ventana de depuracin. Seleccione esta opcin para ver la Ventana de depuracin. Deseleccinela para ocultar la Ventana de depuracin.

Depuracin de los contenedores compartidos


El proceso de depurar contenedores compartidos es el mismo que el de otros trabajos, aunque los puntos de interrupcin se manejan de forma diferente: v No puede colocar un punto de interrupcin en un enlace que tenga un contenedor como etapa de origen.

Captulo 5. Depuracin y compilacin de un trabajo

129

En su lugar, debe colocar el punto de interrupcin en el mismo enlace que se representa en la vista del contenedor. El enlace slo se mostrar con un punto de interrupcin en la vista del contenedor.

v Si se establece un punto de interrupcin en un enlace dentro de un contenedor compartido, slo se activar (y estar visible) para el trabajo de destino, tal como se muestra en la barra de depuracin.

130

Gua del desarrollador de Server Job

Nota: La barra de depuracin slo muestra trabajos de servidor abiertos porque un contenedor compartido no puede ejecutarse fuera del contexto de un trabajo. v Si otro trabajo utiliza el mismo contenedor compartido que se est depurando, el punto de interrupcin no estar visible ni se activar en el otro trabajo. El siguiente ejemplo muestra un trabajo denominado `Ex2', que utiliza el mismo contenedor compartido que el ejemplo anterior denominado `Exercise 4.' El punto de interrupcin slo se establecer para el trabajo de destino que es Exercise 4.

Compilacin de un trabajo
Acerca de esta tarea
Los trabajos se compilan utilizando el cliente del Diseador. Para compilar un trabajo, abra el trabajo en el cliente del Diseador y efecte uno de los pasos siguientes: v Seleccione Archivo > Compilar. v Pulse el botn Compilar en la barra de herramientas. Si se han realizado cambios en el trabajo pero no se han guardado, el sistema le preguntar si desea guardar el trabajo y, en caso afirmativo, deber pulsar Aceptar. Se abrir la ventana Compilar trabajo. Esta ventana contiene una rea de visualizacin para mensajes de compilacin y tiene los siguientes botones: v Recompilar. Vuelve a compilar el trabajo si se han efectuado cambios. v Mostrar error. Resalta la etapa que ha generado un error de compilacin. Este botn slo est activo si se ha generado un error durante la compilacin. v Ms. Muestra la salida que no se adapta al rea de visualizacin. Algunos errores producidos por el compilador incluyen una salida BASIC detallada. v Cerrar. Cierra la ventana Compilar trabajo.

Captulo 5. Depuracin y compilacin de un trabajo

131

v Ayuda. Invoca al sistema de ayuda. El trabajo se compila tan pronto como se abre la ventana. Debe comprobar el rea de visualizacin por si se han producido mensajes de compilacin o se han generado errores. Si se establecen puntos de interrupcin para enlaces que ya no existen, aparece un mensaje durante la compilacin para avisarle al respecto. Los puntos de interrupcin se eliminan automticamente. Tambin puede compilar varios trabajos a la vez utilizando el asistente del compilador de IBM InfoSphere DataStage. Consulte IBM InfoSphere DataStage and QualityStage Designer Client Guide para obtener ms informacin.

Comprobaciones de compilacin
Durante la compilacin se comprueban los criterios siguientes en el diseo del trabajo: v Entrada primaria. Si tiene ms de un enlace de entrada a una etapa Transformer, el compilador comprueba que se haya definido uno como enlace de entrada primario. v Entrada de referencia. Si tiene entradas de referencia definidas en una etapa Transformer, el compilador comprueba que stas no provengan de archivos secuenciales. v Expresiones de clave. Si tiene campos de clave especificados en sus definiciones de columna, el compilador comprueba que haya expresiones de clave que unan las tablas de datos. v Transformaciones. Si ha especificado una transformacin, el compilador comprueba que sea una transformacin adecuada para el tipo de datos.

Compilacin satisfactoria
Si la ventana Compilar trabajo muestra el mensaje Trabajo compilado satisfactoriamente sin errores, puede: v Validar el trabajo v Ejecutar o planificar el trabajo Los trabajos se validan utilizando el cliente del Director. (Tambin puede realizar una ejecucin de prueba en el cliente del Diseador durante el desarrollo, aunque las ejecuciones de produccin se ejecutan normalmente en el cliente del Director). Consulte IBM InfoSphere DataStage and QualityStage Director Client Guide para obtener ms informacin.

Resolucin de problemas
Si la ventana Compilar trabajo muestra un error, puede utilizar el botn Mostrar error para solucionar los problemas del diseo del trabajo. Cuando pulsa Mostrar error, se resalta la etapa que contiene el primer error en el diseo. Debe editar la etapa para cambiar los valores incorrectos y volver a compilar el trabajo. El proceso de solucionar los errores de iteracin es un proceso iterativo. Debe perfeccionar cada etapa "problemtica" hasta que el trabajo se compile satisfactoriamente.

Supervisor de rendimiento grfico


El supervisor de rendimiento resulta una til soporte de diagnstico al disear trabajos de servidor de IBM InfoSphere DataStage.

132

Gua del desarrollador de Server Job

Acerca de esta tarea


Si se activa y se compila un trabajo, ste muestra informacin sobre cada enlace del trabajo. Si ejecuta el trabajo, mediante el cliente del Director o depurador, la informacin del enlace se completa con estadsticas para mostrar el nmero de filas procesadas en el enlace y la velocidad con la que stas se procesan. Los enlaces cambian de color cuando se ejecuta el trabajo para mostrar el progreso del trabajo.

Procedimiento
1. Con el trabajo abierto y compilado en el Diseador, elija Diagrama > Mostrar estadsticas de rendimiento. Aparecer informacin sobre el rendimiento de los enlaces. Si el trabajo an no se ha ejecutado, las figuras estarn vacas.

2. Ejecute el trabajo (desde el cliente del Director o seleccionado Depurar > Ir). Observe como los enlaces cambian de color mientras se ejecuta el trabajo y cmo se llenan las estadsticas con el nmero de filas y filas/seg.

Captulo 5. Depuracin y compilacin de un trabajo

133

Resultados
Si altera cualquier cosa del diseo de trabajo, perder la informacin estadstica hasta la prxima vez que compile el trabajo. Los colores que utiliza el supervisor de rendimiento se establecen mediante el recuadro de dilogo Opciones. Elija Herramientas > Opciones y seleccione la ramificacin Supervisor de rendimiento grfico para ver los colores predeterminados y cambiarlos si es necesario. Tambin puede establecer el intervalo de renovacin segn el cual el supervisor actualizar la informacin mientras se ejecuta el trabajo.

134

Gua del desarrollador de Server Job

Captulo 6. Programacin en IBM InfoSphere DataStage


Estos temas describen las tareas de programacin que se pueden realizar en trabajos de servidor de InfoSphere DataStage. La mayora utilizan el lenguaje BASIC, que proporciona una potente herramienta de programacin de procedimientos. Hay varias reas en un trabajo de servidor donde, si lo desea, puede especificar cdigo: v Definicin de rutinas personalizadas que se utilizan como bloques de creacin en otras tareas de programacin. Por ejemplo, puede definir una rutina que se reutilizar en varias transformaciones personalizadas. Puede ver, editar y crear sus propias rutinas BASIC utilizando el cliente del Diseador. v Definicin de transformaciones personalizadas. La funcin especificada en una definicin de transformacin convierte los datos en una columna seleccionada. v Definicin de derivaciones, expresiones de clave y restricciones mientras se edita una etapa Transformer. v Definicin de subrutinas anteriores y posteriores a la etapa. Estas subrutinas realizan una accin antes o despus de que una etapa haya procesado los datos. Pueden especificarse para las etapas Aggregator, Transformer y algunas etapas suplementarias. v Definicin de subrutinas anteriores y posteriores al trabajo. Estas subrutinas realizan una accin antes o despus de ejecutar un trabajo y se establecen como propiedades del trabajo. v Definicin de rutinas de control de trabajos. Estas subrutinas pueden utilizarse para controlar otros trabajos dentro del trabajo actual.

Componentes de programacin
En los trabajos de servidor, se utilizan tipos de componentes de programacin muy diferentes. Pueden clasificarse en tres categoras principales: v Incorporados. IBM InfoSphere DataStage se proporciona con varios componentes de programacin incorporados que puede reutilizar en los trabajos de servidor, segn sea necesario. Algunos de los componentes incorporados son accesibles desde el repositorio, y puede copiar el cdigo desde ellos. Otros son slo accesibles desde el Editor de expresiones, y el cdigo subyacente no est visible. v Personalizados. Tambin puede definir sus propios componentes de programacin utilizando el cliente del Diseador, en concreto, rutinas (consulte Cmo trabajar con las rutinas en la pgina 138) y transformaciones personalizadas (consulte Definicin de transformaciones personalizadas en la pgina 144). Se almacenan en el repositorio y puede reutilizarse para otros trabajos y por otros usuarios de InfoSphere DataStage. v Externos. Puede utilizar algunos tipos de componentes externos desde InfoSphere DataStage. Si tiene una gran inversin en funciones UniVerse personalizadas o funciones ActiveX (OLE), es posible invocarlas desde InfoSphere DataStage. Para ello, se define una rutina de derivador que, a su vez, invoca las funciones externas. Tenga en cuenta que el mecanismo para incluir funciones UniVerse personalizadas es distinto al de incluir funciones ActiveX (OLE). En las siguientes secciones se describen los trminos de programacin que deber conocer cuando programe trabajos de servidor.

Rutinas
Las rutinas se almacenan en la carpeta Rutinas del rbol de repositorio de forma predeterminada, pero puede almacenarlas en la carpeta que prefiera. Las rutinas se pueden crear, ver o editar utilizando el recuadro de dilogo Rutina de servidor. Los siguientes componentes de programa se clasifican como rutinas:

Copyright IBM Corp. 1997, 2011

135

v Funciones de transformacin. Se trata de funciones que puede utilizar al definir transformaciones personalizadas. IBM InfoSphere DataStage tiene varias funciones de transformacin incorporadas que se encuentran en la carpeta Rutinas > Ejemplos > Funciones del rbol de repositorio. Tambin puede definir sus propias funciones de transformacin en el recuadro de dilogo Rutina de servidor. v Subrutinas anteriores/posteriores. Al disear un trabajo, puede especificar una subrutina para ejecutarla antes o despus del trabajo, o antes o despus de una etapa activa. InfoSphere DataStage tiene varias subrutinas anteriores/posteriores incorporadas que se encuentran en la carpeta Rutinas Incorporadas > Anteriores/posteriores del rbol de repositorio. Tambin puede definir sus propias subrutinas anteriores/posteriores utilizando el recuadro de dilogo Rutina de servidor. v Funciones de UniVerse personalizadas. Son funciones BASIC especializadas que se han definido fuera de InfoSphere DataStage. Mediante el recuadro de dilogo Rutina de servidor, puede hacer que InfoSphere DataStage cree un derivador que permita llamar a estas funciones desde dentro de InfoSphere DataStage. Estas funciones se almacenan en la carpeta Rutinas del rbol de repositorio. Cuando cree la rutina, especifique la categora. Si el soporte multilingstico est habilitado, deber estar informado sobre cualquier requisito de correlacin al crear funciones de UniVerse personalizadas. Si una funcin utiliza datos en un juego de caracteres en concreto, ser su responsabilidad correlacionar los datos desde y hacia Unicode. v Funciones ActiveX (OLE). Puede utilizar funciones ActiveX (OLE) como componentes de programacin dentro de InfoSphere DataStage. En InfoSphere DataStage se pueden utilizar tales funciones realizando una importacin de las mismas. Este programa crea un derivador que permite llamar a las funciones. Tras la importacin, puede ver y editar el derivador BASIC utilizando el recuadro de dilogo Rutina de servidor. De forma predeterminada, estas funciones se encuentran en la carpeta Rutinas > Nombre de clase del rbol de repositorio, pero puede especificar su propia carpeta al importar las funciones. Cuando utiliza el editor de expresiones, todos estos componentes aparecen en el mandato Rutinas de DS... en el men Sugerir operando. Un caso especial de rutina es la rutina de control de trabajos. Este tipo de rutina se utiliza para configurar un trabajo que controla otros trabajos. Las rutinas de control de trabajos se especifican en la pgina Control de trabajos del recuadro de dilogo Propiedades del trabajo. Las rutinas de control de trabajos no se almacenan en la carpeta Rutinas del rbol de repositorio.

Transformaciones
Las transformaciones se almacenan en la carpeta Transformaciones del rbol de repositorio de forma predeterminada, pero puede almacenarlas en la carpeta que desee. Las transformaciones se pueden crear, ver o editar utilizando el recuadro de dilogo Transformacin. Las transformaciones especifican el tipo de datos transformados, el tipo en que se transforman y la expresin que realiza la transformacin. IBM InfoSphere DataStage se suministra con numerosas transformaciones incorporadas (que no se pueden editar). Tambin puede definir sus propias transformaciones personalizadas, que se almacenan en el repositorio y que pueden ser utilizadas por otros trabajos. Cuando utiliza el editor de expresiones, las transformaciones aparecen bajo el mandato Transformacin de DS... en el men Sugerir operando.

Funciones
Las funcionen utilizan argumentos y devuelven un valor. La palabra "funcin" se aplica a muchos componentes de IBM InfoSphere DataStage: v Funciones BASIC. Estas constituyen unos de los bloques de creacin fundamentales del lenguaje BASIC. Cuando utiliza el editor de expresiones, puede acceder a las funciones BASIC mediante el mandato Funcin... del men Sugerir operando. v Funciones BASIC de InfoSphere DataStage. Estas son funciones BASIC especiales que son especficas de InfoSphere DataStage. Se utilizan principalmente en las rutinas de control de trabajos. Las funciones

136

Gua del desarrollador de Server Job

de InfoSphere DataStage empiezan por DS para distinguirlas de las funciones BASIC generales. Cuando utiliza el editor de expresiones, puede acceder a las funciones BASIC de InfoSphere DataStage mediante el mandato Funciones de DS... del men Sugerir operando. Los siguientes elementos, aunque se denominan "funciones", se clasifican como rutinas y se describen en Rutinas en la pgina 135. Cuando utiliza el editor de expresiones, todas aparecen bajo el mandato Rutinas de DS... en el men Sugerir operando. v Funciones de transformacin v Funciones de UniVerse personalizadas v Funciones ActiveX (OLE)

Expresiones
Una expresin es un elemento de cdigo que define un valor. La palabra "expresin" se utiliza como una parte especfica de la sintaxis de BASIC y para describir las partes de cdigo que puede especificar cuando define un trabajo. Las reas de IBM InfoSphere DataStage donde puede utilizar este tipo de expresiones son: v Definicin de puntos de interrupcin en el depurador v Definicin de derivaciones de columna, expresiones de clave y restricciones en las etapas Transformer v Definicin de una transformacin personalizada En cada uno de estos casos, el editor de expresiones de InfoSphere DataStage sirve de gua sobre qu elementos de programacin puede insertar en la expresin.

Subrutinas
Una subrutina es un conjunto de instrucciones que realizan una tarea concreta. Las subrutinas no devuelven un valor. La palabra "subrutina" se utiliza como una parte especfica de la sintaxis de BASIC, pero tambin para hacer referencia especfica a subrutinas anteriores/posteriores que realizan tareas antes o despus de un trabajo en una etapa activa. IBM InfoSphere DataStage tiene muchas subrutinas anteriores y posteriores incorporadas, pero tambin definir rutinas personalizadas. Las subrutinas anteriores/posteriores se incluyen en la clasificacin general de rutinas, ya que son accesibles desde la carpeta Rutinas en el rbol de repositorio de forma predeterminada.

Macros
IBM InfoSphere DataStage tiene varias macros incorporadas. Pueden utilizarse en las expresiones, las rutinas de control de trabajos y las subrutinas anteriores/posteriores. Las macros disponibles permiten establecer el estado del trabajo. Cuando utiliza el editor de expresiones, todas aparecen bajo el mandato Macro de DS... en el men Sugerir operando.

Reglas de prioridad
Se aplican las siguientes reglas de prioridad si hay conflictos de nombres entre los distintos operandos cuando se trabaja con los componentes de programacin de IBM InfoSphere DataStage: 1. Funciones incorporadas declaradas en el archivo DSParams 2. Macros de InfoSphere DataStage 3. Constantes de InfoSphere DataStage 4. Funciones de InfoSphere DataStage 5. Transformaciones de InfoSphere DataStage 6. Rutinas de InfoSphere DataStage
Captulo 6. Programacin en IBM InfoSphere DataStage

137

Estas reglas ignoran el nmero de argumentos implicados. Por ejemplo, si hay una transformacin con tres argumentos y una rutina del mismo nombre con dos argumentos, se genera un error si llama a la rutina, porque la transformacin se encontrar primero y la transformacin espera tres argumentos.

Cmo trabajar con las rutinas


Cuando se crea, visualiza o edita una rutina, aparece el recuadro de dilogo Rutina de servidor. Este recuadro de dilogo tiene cinco pginas: General, Creador, Argumentos, Cdigo y Dependencias. Hay cinco botones en el recuadro de dilogo Rutina de servidor. Su disponibilidad depende de la accin que se est realizando y del tipo de rutina que se est editando. v Cerrar. Cierra el recuadro de dilogo Rutina de Servidor. Si no ha guardado las modificaciones, el sistema le preguntar si desea guardarlas. v Guardar. Guarda la rutina. v Compilar. Compila una rutina guardada. Slo est disponible cuando no hay cambios pendientes (sin guardar). v Probar... Prueba una rutina. Slo est disponible para rutinas del tipo Funcin de transformacin y Funcin UniVerse personalizada. Esto sucede porque no se pueden probar las subrutinas anteriores y posteriores de modo aislado. Slo est activo cuando la rutina se ha compilado o referenciado satisfactoriamente. v Ayuda. Invoca al sistema de Ayuda.

Recuadro de dilogo Rutina de servidor


En esta seccin se describen las cinco pginas del recuadro de dilogo Rutina de servidor.

Pgina General
Aparece la pgina General de modo predeterminado. Contiene informacin general sobre la rutina, incluido: v Nombre de rutina. Nombre de la funcin o subrutina. v Tipo. Tipo de rutina. Existen tres tipos de rutina: Funcin de transformacin, Subrutina anterior/posterior o Funcin de UniVerse personalizada. v Nombre de catlogo externo. Slo est disponible si ha elegido la Funcin de UniVerse personalizada en el recuadro Tipo. Entre el nombre catalogado de la rutina externa. v Descripcin breve. Descripcin breve opcional de la rutina. v Descripcin explicativa. Descripcin detallada opcional de la rutina.

Pgina Creador
La pgina Creador contiene informacin sobre el creador y el nmero de versin de la rutina, por ejemplo: v Proveedor. Empresa que ha creado la rutina. v Autor. Creador de la rutina. v Versin. Nmero de versin de la rutina, que se utiliza al importar la rutina. El campo Versin contiene una nmero de versin de tres partes, por ejemplo: 3.1.1. La primera parte de este nmero es un nmero interno utilizado para comprobar la compatibilidad entre la rutina y el sistema IBM InfoSphere DataStage. La segunda parte de este nmero representa el nmero de release. Este nmero debera ir incrementando a medida que se vayan realizando cambios importantes en la definicin de rutina o en el cdigo subyacente. El release nuevo de la rutina reemplaza cualquier release anterior. Los trabajos que utilicen la rutina utilizarn el release nuevo. La ltima parte de este nmero marca los releases intermedios cuando se ha realizado un cambio menor o un arreglo.

138

Gua del desarrollador de Server Job

Si crea una definicin de una rutina, la primera parte del nmero de versin se establecer de acuerdo con la versin de InfoSphere DataStage que utilice. Puede editar el resto del nmero para especificar el nivel del release. Pulse la parte del nmero que desee cambiar y entre un nmero directamente o utilice el botn de flecha para incrementar el valor. v Copyright. Informacin de copyright.

Pgina de argumentos
Los nombres de rutina predeterminados y si puede aadir o suprimir argumentos depender del tipo de rutina que est editando: v Subrutinas anteriores/posteriores. Los nombres de los argumentos son ArgEntrada y Cdigo de error. Puede editar los nombres y las descripciones de los argumentos pero no puede aadir ni suprimir argumentos. v Funciones de transformacin y funciones de UniVerse personalizadas. De forma predeterminada, tienen un argumento denominado Arg1. Puede editar nombres y descripciones de argumentos y aadir y suprimir argumentos. Como mnimo tiene que haber un argumento, pero no ms de 255.

Pgina de cdigos
La pgina Cdigo se utiliza para ver o grabar el cdigo para la rutina. La barra de herramientas contiene botones para cortar, copiar, pegar y formatear cdigos, as como para activar Buscar (y Reemplazar). La parte principal de esta pgina consta de un recuadro de texto con varias lneas con barras de desplazamiento. Para obtener ms informacin sobre cmo utilizar esta pgina, consulte Introduccin de cdigo en la pgina 140. Nota: Esta pgina no estar disponible si ha seleccionado Funcin de UniVerse personalizada en la pgina General.

Pgina Dependencias
La pgina Dependencias permite entrar cualquier funcin o rutina catalogada de forma local o global que vaya a utilizar en la rutina que est definiendo. As tambin se puede garantizar, que cuando empaquete cualquier trabajo utilizando esta rutina para desplegarla en otro sistema, todas las dependencias se incluirn en el paquete. La informacin necesaria es la siguiente: v Tipo. El tipo de elemento sobre el que depende la rutina. Seleccione una de las opciones siguientes: Local. Funciones y subrutinas BASIC de IBM InfoSphere DataStage catalogadas localmente. Global. Funciones y subrutinas BASIC de InfoSphere DataStage catalogadas globalmente. Archivo. Un archivo estndar. ActiveX. Un objeto ActiveX (OLE) (no disponible en sistemas basados en UNIX). Servicio web. Una operacin de servicio web. v Nombre. Nombre de la funcin o de la rutina. El nombre necesario depende del tipo de dependencia: Local. Nombre del catlogo. Global. Nombre del catlogo. Archivo. Nombre del archivo. ActiveX. La entrada Nombre actualmente no es relevante para los objetos ActiveX. Entre algo significativo para usted (los objetos ActiveX se identifican por el campo Ubicacin). Servicio web. Nombre de la operacin de servicio web. v Ubicacin. Ubicacin de la dependencia. Para una operacin de servicio web, es un URL. Esta ubicacin puede ser una va de acceso absoluta, pero es recomendable especificar una va de acceso relativa utilizando las siguientes variables de entorno: %SERVERENGINE% - directorio de la cuenta del motor de servidor (normalmente C:\IBM\InformationServer\Server\DSEngine).
Captulo 6. Programacin en IBM InfoSphere DataStage

139

%PROJECT% - Directorio del proyecto Current. %SYSTEM% - directorio del sistema en Windows o /usr/lib en UNIX. Para examinar la ubicacin, efecte una doble pulsacin para abrir la ventana Seleccionar desde servidor. (Esta ventana no est disponible para los elementos locales catalogados). No puede navegar al directorio padre de una variable de entorno. Cuando examina la ubicacin de un archivo en un servidor UNIX, hay una entrada denominada Root en la lista Ubicaciones bsicas.

Creacin de una rutina


Puede crear una nueva rutina.

Procedimiento
1. Abra el recuadro de dilogo Rutina de servidor de la siguiente manera: v Seleccione Archivo > Nuevo en el men principal, o pulse el botn Nuevo en la barra de herramientas. Aparecer el recuadro de dilogo Nuevo. Pulse la carpeta Rutinas y seleccione el icono Rutina de servidor. v Pulse con el botn derecho del ratn sobre Rutinas en el rbol de repositorio y seleccione Nueva > Rutina de servidor en el men de atajos. 2. En la pgina General, escriba el nombre de la funcin o subrutina en el campo Nombre de rutina. No puede coincidir con otro nombre de funcin BASIC. 3. Elija el tipo de rutina que desea crear en la lista Tipo. Existen tres opciones: v Funcin de transformacin. Seleccione esta opcin si desea crear una rutina para la definicin de una transformacin. v Subrutina anterior/posterior. Seleccione esta opcin si desea crear una rutina para una subrutina anterior a la etapa o posterior a la etapa o una subrutina anterior al trabajo o posterior al trabajo. v Funcin de UniVerse personalizada. Seleccione esta opcin si desea hacer referencia a una rutina externa, en lugar de definir una en este recuadro dilogo. Si selecciona esta opcin, la pgina Cdigo no estar disponible. 4. De forma opcional, puede entrar una descripcin breve de la rutina en el campo Descripcin breve. 5. De forma opcional, puede entrar una descripcin ms detallada de la rutina en el campo Descripcin detallada.

Resultados
Cuando complete esta pgina, puede especificar informacin del creador en la pgina Creador, informacin de argumentos en la pgina Argumentos y detalles de las dependencias en la pgina Dependencias. A continuacin, debe especificar su cdigo en la pgina Cdigo.

Introduccin de cdigo
Puede entrar o editar cdigos para una rutina en la pgina Cdigo, en el recuadro de dilogo Rutina de Servidor. El primer campo de esta pgina muestra el nombre de la rutina y los nombres del argumento. Si desea cambiar estas propiedades, deber editar los campos en las pginas General y Argumentos. El parte principal de esta pgina contiene un recuadro de entrada de texto de varias lneas, en el que deber entrar su cdigo. Para entrar el cdigo, pulse el recuadro y empiece a escribir. Puede utilizar las siguientes funciones de edicin estndar de Windows en este recuadro de texto: v Suprimir utilizando la tecla Supr v Cortar utilizando Control-X v Copiar utilizando Control-C

140

Gua del desarrollador de Server Job

v v v v

Pegar utilizando Control-V Ir al final de la lnea utilizando la tecla Fin Ir al principio de la lnea utilizando la tecla Inicio Seleccione texto pulsando y arrastrando o efectuando una doble pulsacin

Algunas de estas funciones de edicin se incluyen en un men de atajos que se puede visualizar pulsando el botn derecho del ratn. Tambin puede cortar y pegar cdigos utilizando los botones de la barra de herramientas. Su cdigo slo debe contener funciones y sentencias BASIC soportadas por IBM InfoSphere DataStage. Si no est seguro de las funciones y de las sentencias que se soportan o de la sintaxis apropiada que debe utilizar, consulte Captulo 7, Programacin BASIC, en la pgina 149 para obtener una lista completa de las funciones BASIC de InfoSphere DataStage soportadas. Si el soporte multilingstico est habilitado, podr utilizar caracteres no ingleses en las siguientes circunstancias: v En comentarios v En datos de serie (es decir, en series incluidas entre comillas) El uso de caracteres no ingleses en cualquier otro lugar provocar errores de compilacin. Si desea formatear su cdigo, pulse el botn Formatear de la barra de herramientas. El ltimo campo de esta pgina muestra la sentencia de retorno para la funcin o la subrutina. Este campo no se puede editar.

Cmo guardar cdigos


Acerca de esta tarea
Cuando termine de introducir o de editar el cdigo, debe guardarse la rutina. Una rutina no se puede compilar ni comprobar si no se ha guardado. Para guardar una rutina, pulse Guardar en el recuadro de dilogo Rutina de Servidor. Las propiedades de la rutina (nombre, descripcin, nmero de argumentos e informacin sobre el autor) y el cdigo asociado se guardan en el repositorio.

Cdigo de compilacin
Acerca de esta tarea
Una vez haya guardado la rutina, deber compilarla. Para compilar una rutina, pulse Compilar en el recuadro de dilogo Rutina de servidor. Si la rutina se compila satisfactoriamente, aparece un recuadro de mensaje. Pulse Aceptar para acusar la recepcin del mensaje. La rutina se marca como "creada" en el repositorio y est disponible para ser utilizada. Si la rutina es una Funcin de transformacin, sta se visualiza en la lista de funciones disponibles cuando se edita una transformacin. Si la rutina es una Subrutina anterior/posterior, aparece en lista de las subrutinas disponibles cuando se edita una etapa Aggregator, Transformer o suplementaria, o se definen propiedades del trabajo. Si la rutina no puede compilarse, se muestran los errores generados. Antes de empezar a investigar la causa del error, se recomienda mover la ventana Salida de compilacin al lado o debajo del recuadro de dilogo Rutina de servidor, ya que necesita ver ambas ventanas para solucionar el error. Para solucionar el error, efecte una doble pulsacin en la ventana Salida de la compilacin. IBM InfoSphere DataStage intenta encontrar la lnea correspondiente del cdigo que ha causado el error y lo resalta en el recuadro de dilogo Rutina de servidor. Debe editar el cdigo para eliminar todas las sentencias incorrectas o para corregir posibles errores sintcticos.

Captulo 6. Programacin en IBM InfoSphere DataStage

141

Si el soporte multilingstico est habilitado, busque mltiples signos interrogantes en la ventana Salida de compilacin. Normalmente indica que se ha producido un error en la correlacin de juego de caracteres. Cuando haya modificado su cdigo, pulse Guardar y, a continuacin, Compilar. Si es necesario, prosiga solucionando cualquier error que se haya podido producir hasta que la rutina se compile de forma satisfactoria. Cuando la rutina se haya compilado, puede utilizarla en otras reas de InfoSphere DataStage o comprobarla. Consulte Comprobacin de una rutina para obtener ms informacin.

Comprobacin de una rutina


Acerca de esta tarea
Antes de utilizar una rutina compilada, puede comprobarla utilizando el botn Probar en el recuadro de dilogo Rutina de servidor. El botn Probar se activa si la rutina se ha compilado de forma satisfactoria. Nota: El botn Probar no est disponible para una Subrutina anterior/posterior. Las rutinas de este tipo no se pueden comprobar de forma aislada y deben ejecutarse como parte de un trabajo en ejecucin. Si pulsa Probar, aparecer el recuadro de dilogo Probar rutina. Este recuadro de dilogo contiene una cuadrcula y botones. La cuadrcula tiene una columna para cada argumento y una para el resultado de la comprobacin. Puede aadir y editar filas en la cuadrcula para especificar valores para distintos casos de prueba. Para obtener ms informacin sobre cmo utilizar y editar una cuadrcula, consulte IBM InfoSphere DataStage and QualityStage Designer Client Guide. Para ejecutar una prueba con un conjunto de valores seleccionado, pulse en cualquier parte de la fila que desea utilizar y pulse Ejecutar. Si desea ejecutar pruebas utilizando todos los valores de prueba, pulse Ejecutar todos. La columna Resultado... se llena conforme se va completando cada prueba. Para ver ms detalles sobre una prueba en concreto, efecte una doble pulsacin sobre la celda Resultado... de la prueba que desee ver. Se abre la ventana Salida de prueba, mostrando todos los resultados de la prueba. Pulse Cerrar para cerrar esta ventana. Si desea suprimir un conjunto de valores de prueba, pulse en cualquier parte de la fila que desea eliminar y pulse Suprimir o elija Suprimir fila en el men de atajos. Cuando haya finalizado de probar la rutina, pulse Cerrar para cerrar el recuadro de dilogo Probar rutina. Todos los valores de prueba que haya entrado se guardarn cuando cierre el recuadro de dilogo.

Utilizacin de Buscar y sustituir


Acerca de esta tarea
Si desea buscar o sustituir un texto especfico en el cdigo, puede utilizar Buscar y Sustituir. Para iniciar Buscar, pulse el botn Buscar en la barra de herramientas de la pgina Cdigo. Aparecer el recuadro de dilogo Buscar. Este recuadro de dilogo tiene los campos, opciones y botones siguientes: v Texto de bsqueda. Contiene el texto que desea buscar. Especifique el texto correspondiente en este campo. Si el texto estaba resaltado en el cdigo antes de seleccionar Buscar, este campo muestra el texto resaltado.

142

Gua del desarrollador de Server Job

v Coincidencia de maysculas y minsculas. Especifica si desea realizar una bsqueda en la que coincidan maysculas y minsculas. Este recuadro de seleccin est deseleccionado de forma predeterminada. Seleccione este recuadro de seleccin para realizar una bsqueda que distinga entre maysculas y minsculas. v Arriba y Abajo. Especifica la direccin de la bsqueda. El valor predeterminado es Abajo. Pulse Arriba para realizar una bsqueda en la direccin opuesta. v Buscar siguiente. Inicia la bsqueda. No estar disponible hasta que especifique el texto de bsqueda. Siga pulsando Buscar siguiente hasta encontrar todas las apariciones del texto. v Cancelar. Cierra el recuadro de dilogo Buscar. v Sustituir... Muestra el recuadro de dilogo Sustituir. Para obtener ms informacin, consulte Sustitucin de texto. v Ayuda. Invoca al sistema de Ayuda.

Sustitucin de texto
Acerca de esta tarea
Si desea sustituir texto en el cdigo con una serie de texto alternativa, pulse Sustituir... en el recuadro de dilogo Buscar. Cuando pulsa este botn, el recuadro de dilogo Buscar cambia al recuadro de dilogo Sustituir. Este recuadro de dilogo tiene los campos, opciones y botones siguientes: v Texto de bsqueda. Contiene el texto que desea buscar y sustituir. v Sustituir por. Contiene el texto que desea utilizar en lugar del texto de bsqueda. v Coincidencia de maysculas y minsculas. Especifica si desea realizar una bsqueda en la que coincidan maysculas y minsculas. Este recuadro de seleccin est deseleccionado de forma predeterminada. Seleccione este recuadro de seleccin para realizar una bsqueda que distinga entre maysculas y minsculas. v Arriba y Abajo. Especifica la direccin de la bsqueda y sustitucin. El valor predeterminado es Abajo. Pulse Arriba para realizar una bsqueda en la direccin opuesta. v Buscar siguiente. Inicia la bsqueda y sustitucin. Este botn no estar disponible hasta que especifique el texto de bsqueda. Siga pulsando Buscar siguiente hasta encontrar todas las apariciones del texto. v Cancelar. Cierra el recuadro de dilogo Sustituir. v Sustituir. Sustituye el texto de bsqueda por el texto alternativo. v Sustituir todo. Realiza una sustitucin global de todas las instancias del texto de bsqueda. v Ayuda. Invoca al sistema de Ayuda.

Visualizacin y edicin de una rutina


Puede ver y editar las funciones y subrutinas grabadas por el usuario en el proyecto.

Acerca de esta tarea


Para ver o modificar una funcin o subrutina, seleccinela en el rbol de repositorio y efecte uno de los pasos siguientes: v Elija Repositorio > Propiedades. v Seleccione Propiedades en el men de atajos. v Efecte una doble pulsacin en el rbol de repositorio. Aparecer el recuadro de dilogo Rutina de Servidor. Puede editar cualquier campo u opcin en cualquiera de las pginas. Si efecta cambios, deber guardar, compilar y comprobar el cdigo antes de

Captulo 6. Programacin en IBM InfoSphere DataStage

143

cerrar el recuadro de dilogo Rutina de Servidor. Consulte Cmo guardar cdigos en la pgina 141 para obtener ms informacin.

Cmo copiar una rutina


Acerca de esta tarea
Para copiar una rutina existente, seleccinela en el rbol de repositorio y efecte uno de los pasos siguientes: v Elija Repositorio > Crear copia. v Seleccione Crear copia en el men de atajos. La rutina se copia y la nueva rutina se crea en la misma carpeta en el rbol de repositorio. De forma predeterminada, el nombre de la copia se denomina CopyOfXXX, donde XXX es el nombre de la rutina seleccionada. Aparece un recuadro de edicin que permite renombrar la copia inmediatamente. Se debe compilar la nueva rutina antes de utilizarla.

Cmo renombrar una rutina


Acerca de esta tarea
Puede renombrar cualquiera de las rutinas existentes en el repositorio. Para renombrar un elemento, seleccinelo en el rbol de repositorio y efecte uno de los pasos siguientes: v Vuelva a pulsar la rutina. Aparece un recuadro de edicin y el usuario puede entrar un nombre diferente o editar uno ya existente. Guarde el nombre nuevo pulsando Intro o pulsando fuera del recuadro de edicin. v Elija Repositorio > Renombrar. Aparece un recuadro de edicin y el usuario puede entrar un nombre diferente o editar uno ya existente. Guarde el nombre nuevo pulsando Intro o pulsando fuera del recuadro de edicin. v Seleccione Renombrar en el men de atajos. Aparece un recuadro de edicin y el usuario puede entrar un nombre diferente o editar uno ya existente. Guarde el nombre nuevo pulsando Intro o pulsando fuera del recuadro de edicin. v Efecte una doble pulsacin sobre la rutina. Aparece el recuadro de dilogo Rutina de servidor y puede editar el campo Nombre de rutina. Pulse Guardar y, a continuacin, Cerrar.

Definicin de transformaciones personalizadas


Puede crear una transformacin personalizada.

Acerca de esta tarea


Las transformaciones se utilizan en la etapa Transformer para convertir los datos a un formato que desee utilizar en la despensa de datos final. Cada transformacin especifica la funcin BASIC utilizada para convertir los datos de un tipo a otro. Con IBM InfoSphere DataStage se proporciona varias transformaciones incorporadas, que se describen en InfoSphere DataStage Programmer's Guide. Si las transformaciones incorporadas no son adecuadas o si desea que una transformacin especfica acte sobre un elemento de datos especfico, puede crear transformaciones personalizadas en el cliente del Diseador. La ventaja de crear una transformacin personalizada con slo entrar la expresin necesaria en el editor de transformador es tal, que una vez definida, la transformacin est disponible para ser utilizada desde cualquier sitio del proyecto. Tambin se puede exportar fcilmente a otros proyectos de InfoSphere DataStage.

144

Gua del desarrollador de Server Job

Para proporcionar an ms flexibilidad, tambin puede definir sus propias rutinas y funciones personalizadas a partir de las cuales se crearn transformaciones personalizadas. Hay tres modos de hacerlo: v Entrar el cdigo en InfoSphere DataStage (utilizando las funciones BASIC). Consulte Creacin de una rutina en la pgina 140. v Crear una referencia a una rutina catalogada externamente. Consulte Creacin de una rutina en la pgina 140. v Importar funciones ActiveX (OLE) externas. Consulte Importacin de funciones ActiveX (OLE) externas en la pgina 146.

Procedimiento
1. En el rbol de repositorio, seleccione la carpeta Transformaciones y efecte uno de los siguientes pasos: v Seleccione Archivo > Nuevo en el men del cliente del Diseador, o pulse el botn Nuevo en la barra de herramientas. Aparecer el recuadro de dilogo Nuevo. Pulse la carpeta Otros y seleccione Transformacin. v Pulse con el botn derecho del ratn y seleccione Nuevo > Otros > Transformacin en el men de atajos. Aparecer el recuadro de dilogo Transformacin. Este recuadro de dilogo tiene dos pginas: v General. Se visualiza de forma predeterminada. Contiene informacin general sobre la transformacin. v Detalles. Permite especificar elementos de datos de origen y de destino, la funcin y los argumentos que se deben utilizar. 2. Escriba el nombre de la transformacin en el campo Nombre de la transformacin. El nombre que se entre aqu debe ser exclusivo; dos transformaciones no pueden tener el mismo nombre. Tenga tambin en cuenta, que la transformacin no debe tener el mismo nombre que una funcin BASIC existente; si lo tiene, se llamar a la funcin en lugar de la transformacin cuando se ejecute el trabajo. Consulte Reglas de prioridad en la pgina 137 para ver las consideraciones sobre los nombres de componente. 3. De forma opcional, puede escribir una descripcin breve de la transformacin en el campo Descripcin breve. 4. De forma opcional, puede escribir una descripcin detallada de la transformacin en el campo Descripcin detallada. Una vez completada esta pgina, puede especificar cmo convertir los datos. 5. Pulse el separador Detalles. 6. De forma opcional, elija el elemento de datos que desee como elemento de datos de destino a parte de la lista Elemento de datos de destino. (La utilizacin de un elemento de datos de origen y de destino permite aplicar una escritura de datos ms estricta a su transformacin. Consulte IBM InfoSphere DataStage and QualityStage Designer Client Guide para ver una descripcin de los elementos de datos). 7. Especifique argumentos de origen para la transformacin en la cuadrcula Argumento visible. Escriba el nombre del argumento y, opcionalmente, elija el elemento de datos correspondiente de la lista. Utilice el editor de expresiones del campo Definicin para entrar una expresin que defina cmo debe comportarse la transformacin. El Editor de expresiones se describe en Editor de expresiones de IBM InfoSphere DataStage en la pgina 123. El men Sugerir operando es ligeramente diferente cuando se utiliza el editor de expresiones para definir transformaciones personalizadas y proporciona mandatos que resultan tiles al definir transformaciones.
Men Sugerir operando: definicin de transformaciones personalizadas Macro de DS... Funcin de DS... Constante de DS...

Captulo 6. Programacin en IBM InfoSphere DataStage

145

Men Sugerir operando: definicin de transformaciones personalizadas Rutina de DS... Argumento de transformacin... Variable del sistema... Serie... Funcin... () Parntesis If Then Else

8. Pulse Aceptar. Aparecer el recuadro de dilogo Guardar transformacin como, que permite seleccionar la carpeta en la que se guardar en el rbol de repositorio. Si es necesario, tambin puede cambiar el nombre de la transformacin. Pulse Guardar para guardar la transformacin y cierre el recuadro de dilogo Transformacin.

Resultados
A continuacin, puede utilizar la nueva transformacin desde dentro del Editor de transformador. Nota: Si se ha habilitado el soporte multilingstico, evite utilizar las funciones Iconv y Oconv integradas para correlacionar datos a no ser que sea perfectamente consciente de las consecuencias de sus acciones.

Funciones ActiveX (OLE) externas


IBM InfoSphere DataStage ofrece la posibilidad de llamar a las funciones ActiveX (OLE) externas que se han instalado en el sistema donde reside la capa de motor. Estas funciones pueden utilizarse posteriormente cuando defina transformaciones personalizadas. Para utilizar este recurso, necesita un servidor de automatizacin que exponga las funciones a travs de la interfaz IDispatch y que tenga una biblioteca de tipos asociados. Para ello, puede utilizar varias herramientas, incluido Visual Basic. El primer paso para utilizar las funciones externas es importarlas al repositorio. La accin de importar una funcin externa crea una rutina de InfoSphere DataStage que contiene cdigo que invoca la funcin externa. El cdigo utiliza una funcin BASIC de InfoSphere DataStage que slo acepta determinados tipos de datos. Estos tipos de datos se definen en el archivo DSOLETYPES.H en el directorio dsinclude de cada proyecto. Una vez importadas, podr llamar a las funciones cuando defina una transformacin personalizada. Nota: Este recurso slo est disponible en los servidores Windows.

Importacin de funciones ActiveX (OLE) externas


Puede importar las funciones ActiveX (OLE).

Procedimiento
1. En el cliente del Diseador, seleccione Importar > Definiciones de la funcin externa.... Se abre el asistente para Importar definiciones de funciones de transformacin solicitando que se facilite el nombre de la va de acceso del archivo que contiene las transformaciones que se deben importar. Normalmente se trata de un archivo DDL que debe haberse instalado en el sistema donde reside la capa de motor.

146

Gua del desarrollador de Server Job

2. Entre el nombre de la va de acceso o localcelo y, a continuacin, pulse Siguiente. El asistente solicita el archivo DDL especificado para establecer las clases de automatizacin que contiene y las presenta en una lista. 3. Seleccione una clase de automatizacin y pulse Siguiente. El asistente interroga a la clase de automatizacin para obtener detalles de las funciones adecuadas que soporta. A continuacin, las visualiza. 4. Seleccione las funciones que desea importar. Pulse Siguiente. El asistente mostrar los detalles de la importacin propuesta. 5. Si est satisfecho con los detalles, pulse Importar. IBM InfoSphere DataStage empezar a generar las rutinas necesarias y mostrar una barra de progreso. Al finalizar, se abre una ventana de resumen. 6. Pulse Finalizar para salir del asistente.

Captulo 6. Programacin en IBM InfoSphere DataStage

147

148

Gua del desarrollador de Server Job

Captulo 7. Programacin BASIC


Estos temas constituyen una gua de referencia del programador sobre el lenguaje de programacin BASIC de IBM InfoSphere DataStage. El lenguaje BASIC de InfoSphere DataStage que se describe a continuacin es el subconjunto de los mandatos BASIC que se utilizan con ms frecuencia en InfoSphere DataStage. No obstante, no est limitado a las funciones que aqu se describen, sino que puede utilizar el rango completo de mandatos BASIC de InfoSphere DataStage que se describen en IBM InfoSphere DataStage BASIC Reference Guide, incluidas las matrices dinmicas. No obstante, deber prestar especial atencin a algunas reas. Los principales puntos a tener en cuenta son: v No utilice mandatos, funciones, sentencias o subrutinas que requieran una entrada del usuario. v Para detener un trabajo en ejecucin, utilice la subrutina DSLogFatal. Si utiliza una sentencia Stop o Abort, puede que el trabajo quede en una condicin irrecuperable. v No utilice la sentencia Print. En su lugar, utilice una llamada a DSLogInfo para grabar en el archivo de registro de trabajo. v No utilice la sentencia Execute para ejecutar mandatos del motor de servidor. En su lugar, utilice una llamada a DSExecute. La publicacin IBM InfoSphere DataStage BASIC Reference Guide ntegra se proporciona en formato PDF con InfoSphere DataStage.

Convenios de sintaxis
Las descripciones de sintaxis utilizan los siguientes convenios: Convenio Uso Negrita El tipo negrita indica funciones, sentencias, subrutinas, opciones, parntesis, comas, etc., que deben especificarse exactamente tal como aparecen. Cursiva La cursiva indica informacin variable que debe proporcionar como, por ejemplo, una expresin, una serie de entrada, un nombre de variable o una lista de sentencias. [] [] Los corchetes encierran elementos opcionales. No especifique estos corchetes. Los corchetes con un tipo de letra cursiva y negrita deben especificarse como parte de la sintaxis.

{ Then | Else } Dos palabras clave o clusulas separadas por barras verticales y entre signos de llave indican que puede elegir slo una opcin. No especifique los signos de llave ni la barra vertical. ... @FM @IM @SM @TM @VM Los tres puntos indican que el ltimo elemento de la sintaxis puede repetirse si es necesario. Marca de campo. Marca de elemento. Marca de subvalor. Marca de texto. Marca de valor.

Copyright IBM Corp. 1997, 2011

149

El lenguaje BASIC
En esta seccin se proporciona una visin general de los componentes fundamentales del lenguaje IBM InfoSphere DataStage BASIC. Se describen las constantes, las variables, los tipos de datos y cmo se combinan los datos con operadores aritmticos, de series, relacionales y lgicos para formar expresiones.

Constantes
Una constante es un valor que se fija durante la ejecucin de un programa y puede reutilizarse en distintos contextos. Una constante puede ser: v Una serie de caracteres v Una serie vaca v Una serie numrica con formato de entero o coma flotante Los caracteres ASCII del 0 al 10, y los caracteres del 251 al 255, inclusivos, no pueden incorporarse en las constantes de tipo serie en los sistemas sin soporte multilingstico (estos caracteres no pueden utilizarse tampoco en los comentarios).

Variables
Las variables se utilizan para almacenar valores en la memoria temporalmente. Posteriormente podr utilizar los valores en varias operaciones. Puede asignar un valor explcito a una variable, o asignarle el valor que es el resultado de las operaciones efectuadas por el programa durante la ejecucin. Las variables pueden cambiar de valor durante la ejecucin del programa. Al principio de la ejecucin del programa, todas las variables estn desasignadas. Si se intenta emplear una variable desasignada, se genera un mensaje de error. El valor de una variable puede ser: v v v v Ningn valor asignado Una serie Un entero o un nmero de coma flotante El valor nulo

v Una matriz dimensionada v Una variable de archivo IBM InfoSphere DataStage proporciona un conjunto de variables del sistema de slo lectura que almacenan datos del sistema como, por ejemplo, la fecha actual, la hora, el nombre de la va de acceso, etc. Puede acceder a ellas desde una rutina o una transformacin.

Matrices dimensionadas
Una matriz es una variable de varios valores a la que se accede desde un nombre individual. Cada valor es un elemento de la matriz. IBM InfoSphere DataStage utiliza dos tipos de matrices dimensionadas: v Matrices unidimensionales o vectores v Matrices bidimensionales o matrices Los vectores tienen elementos almacenados en la memoria en una fila individual. Cada elemento est indexado, es decir, tiene un nmero secuencial asignado. El ndice del primer elemento es 1. Para especificar un elemento del vector, utilice el nombre de variable seguido del ndice del elemento entre parntesis. El ndice puede ser una constante o una expresin, por ejemplo:
A(1) ;*especifica el primer elemento de la variable A Cost(n + 1) ;* especifica una expresin para calcular el ndice

150

Gua del desarrollador de Server Job

Las matrices tienen elementos almacenados en varias filas. Para especificar un elemento de una matriz, debe proporcionar dos ndices: el nmero de fila y el nmero de columna. Por ejemplo, en una matriz con cuatro columnas y tres filas, los elementos se especifican utilizando estos ndices:
1,1 2,1 3,1 1,2 2,2 3,2 1,3 2,3 3,3 1,4 2,4 3,4

La especificacin completa utiliza el nombre de variable seguido de los ndices entre parntesis. Por ejemplo:
Obj(3,1) Widget(7,17)

Los vectores se tratan como si fueran matrices con una segunda dimensin 1. COST(35) y COST(35,1) significan lo mismo. Las dimensiones de una matriz se definen con la sentencia Dimension. Tambin puede redimensionar una matriz utilizando Dimension.

Expresiones
Una expresin define un valor. El valor se evala en el tiempo de ejecucin. El resultado puede utilizarse como entrada de una funcin, asignarse a una variable, etc. Una expresin simple puede constar de: v v v v Una serie o una constante numrica, por ejemplo, "porcentaje" o "42" Un nombre de variable Una funcin Una funcin definida por el usuario

Una expresin compleja puede contener una combinacin de constantes, variables, operadores, funciones y otras expresiones.

Funciones
Una funcin realiza manipulaciones matemticas o de serie en los argumentos que se proporcionan y devuelve un valor. Algunas funciones no tienen argumentos; la mayora tienen uno o varios. Los argumentos van siempre entre parntesis, separados por comas, tal como se muestra en la sintaxis general:
FunctionName (argumento, argumento)

Una expresin puede contener una funcin. Un argumento en una funcin puede ser una expresin que incluya una funcin. Las funciones pueden realizar tareas: v En las series numricas, por ejemplo, cuando se calcula el seno de un ngulo que se pasa como argumento (funcin Sin) v En las series de caracteres, por ejemplo, cuando se suprimen los espacios en blanco y las tabulaciones excedentes (funcin Trim) Las funciones de transformacin en IBM InfoSphere DataStage deben tener al menos un argumento que contenga el valor de entrada que se va a transformar. Una definicin de transformacin puede utilizar otros argumentos opcionales para seleccionar una determinada va de acceso mediante la funcin de transformacin, si es necesario. Esto significa que una funcin individual puede encapsular la lgica de varias transformaciones relacionadas. La funcin de transformacin debe devolver el valor transformado utilizando una sentencia Return (valor).

Sentencias
Las sentencias se utilizan para:

Captulo 7. Programacin BASIC

151

v Cambiar el control de programa. Las sentencias se ejecutan en el orden en el que se especifican, a menos que una sentencia de control cambie el orden, por ejemplo, invocando una subrutina o definiendo un bucle. v Asignar un valor a una variable. v Especificar el valor de una constante. v Aadir comentarios a los programas.

Etiquetas de sentencias
Una etiqueta de sentencia es un identificador exclusivo de una lnea de cdigo. Una etiqueta de sentencia consta de una serie de hasta 64 caracteres seguida de un carcter de dos puntos. La serie puede contener caracteres alfanumricos, puntos, signos de dlar y signos de porcentaje. Las etiquetas de sentencia son sensibles a las maysculas y minsculas. Una etiqueta de sentencia puede colocarse delante de una sentencia o en su propia lnea.

Subrutinas
Una subrutina es un conjunto autocontenido de instrucciones que realizan una tarea concreta. Una subrutina puede tomar dos formas: v Una subrutina incorporada est contenida en el programa y se accede a ella con una sentencia GoSub. v Una subrutina externa se almacena en un archivo aparte y se accede a ella con una sentencia Call. En trminos generales, utilice una subrutina incorporada para el cdigo que desea invocar muchas veces desde el mismo programa; utilice una subrutina externa para el cdigo que desee invocar desde varios programas diferentes. Hay varias subrutinas BASIC que son especficas de IBM InfoSphere DataStage. Sus nombres empiezan por DS y se describen en Subrutinas BASIC de IBM InfoSphere DataStage especiales. InfoSphere DataStage tambin se proporciona con varias subrutinas anteriores/posteriores, que se ejecutan antes o despus de un trabajo o una etapa activa. Puede definir sus propias subrutinas anteriores/posteriores utilizando el cliente del Diseador. Las subrutinas anteriores/posteriores deben tener dos argumentos. El primero contiene el valor que especifica el usuario cuando se invoca la subrutina desde un trabajo o una etapa; el segundo es el cdigo de respuesta de la rutina. El cdigo de respuesta es 0 si no hay ningn error. Los dems valores indican que el trabajo se ha detenido.

Subrutinas BASIC de IBM InfoSphere DataStage especiales


InfoSphere DataStage proporciona algunas subrutinas de InfoSphere DataStage especiales para utilizarlas en las subrutinas anteriores/posteriores o las transformaciones personalizadas. Ahora puede: v Registrar sucesos en el archivo de registro del trabajo utilizando DSLogInfo, DSLogWarn, DSLogFatal y DSTransformError v Ejecutar mandatos del motor de servidor o de DOS utilizando DSExecute Todas las subrutinas se invocan utilizando la sentencia Call.

Operadores
Un operador realiza una operacin en una o varias expresiones (los operandos). Los operadores se dividen en las categoras siguientes: v Operadores aritmticos v Operadores de serie para: Concatenar series con Cats o : Extraer subseries con [ ] v Operadores relacionales v Operadores de coincidencia de patrn

152

Gua del desarrollador de Server Job

v Operador If v Operadores lgicos v Operadores de asignacin

Operadores aritmticos
Los operadores aritmticos combinan operandos mediante sumas, restas, etc. Las expresiones resultantes pueden combinarse tambin con otras expresiones. Los operandos deben ser expresiones numricas. Las expresiones no numricas se tratan como 0 y generan un aviso de tiempo de ejecucin. Una variable de serie de caracteres que contiene nicamente caracteres numricos cuenta como una expresin numrica. Por ejemplo, la siguiente expresin da como resultado el valor 66:
"22" + 44

En esta tabla se muestran los operadores aritmticos por orden de evaluacin:


Operador ^ * / + Operacin Negacin Elevacin a una potencia Multiplicacin Divisin Suma Resta Ejemplo -x x^y x*y x/y x+y x-y

Puede cambiar el orden de evaluacin utilizando parntesis. Las expresiones escritas entre parntesis se evalan antes que las de fuera de los parntesis. Por ejemplo, esta expresin se evala como 112 + 6 + 2, o 120:
(14 * 8) + 12 / 2 + 2

Esta expresin se evala como 14 * 20 / 4, o 280 / 4, o 70:


14 * (8 + 12) / (2 + 2)

El resultado de una operacin aritmtica que incluya el valor nulo es un valor nulo.

Concatenacin de series
El operador de concatenacin, : o Cats, enlaza expresiones de serie para formar expresiones de serie compuestas. Por ejemplo, si x tiene el valor Tarzan, esta expresin:
"Hello. " : "My Name is " : X : ". Whats yours?"

se evala en:
"Hello. My name is Tarzan. Whats yours?"

Si hay distintas operaciones de concatenacin, estas se ejecutan normalmente de izquierda a derecha. Puede cambiar el orden de evaluacin utilizando parntesis. Las expresiones entre parntesis se evalan antes que las operaciones situadas fuera de los parntesis. Los operandos numricos en las expresiones concatenadas se consideran valores de serie. Los operadores aritmticos tienen una mayor prioridad que el operador de concatenacin. Por ejemplo:
"There are " : "2" + "2" : "3" : " windows."

tiene el valor:
"There are 43 windows."

Captulo 7. Programacin BASIC

153

El resultado de cualquier operacin de serie que comprenda el valor nulo es un valor nulo. Pero si se hace referencia al valor nulo como una serie de caracteres que contiene nicamente el valor nulo (es decir, como la serie CHAR(128)), este se considera informacin de serie de caracteres. Por ejemplo, esta expresin se evala como valor nulo:
"A" : @NULL ;*concatenate A with @NULL system variable

Pero esta expresin:


"A" : @NULL.STR ;*concatenate A with @NULLSTR system variable

se evala en "A<CHAR128>".

Extraccin de subseries
Una subserie es una serie dentro de una serie. Por ejemplo, tab y abla son ambas subseries de tabla. Puede utilizar el operador [ ] para especificar una subserie utilizando esta sintaxis:
serie[ [ inicio, ] longitud ]

serie es la serie que contiene la subserie. inicio es un nmero que especifica dnde se inicia la subserie. El primer carcter de la serie cuenta como 1. Si inicio es 0 o un nmero negativo, se supone que la posicin inicial es 1. Si omite inicio, la posicin inicial se calcula segn la frmula siguiente:
longitud.serie - longitud.subserie + 1

v Subseries finales. Puede especificar una subserie final omitiendo inicio en la sintaxis. Por ejemplo, esta especificacin:
"1234567890" [5]

devuelve la subserie:
67890

v Subseries delimitadas. Puede extraer una subserie delimitada con esta sintaxis:
serie [ delimitador, instancia, campos ]

serie es la serie que contiene la subserie. delimitador especifica el carcter que delimita la subserie. instancia especifica la instancia del delimitador donde se inicia la extraccin. campos especifica el nmero de campos que se van a extraer. Los delimitadores que marcan el inicio y el final de la extraccin no se devuelven, pero si extrae ms de una serie, se devuelven los delimitadores provisionales. Esta sintaxis funciona de la misma forma que la funcin Field. v Asignacin de una subserie a una variable. Todas las sintaxis de subserie se pueden utilizar junto con el operador = para sustituir el valor que normalmente devuelve el operador [ ] por el valor asignado a la variable. Por ejemplo:
A="12345" A[3]=1212

devuelve el resultado 121212. Esta sintaxis funciona de la misma forma que la funcin FieldStore.

Operadores relacionales
Los operadores relacionales comparan las series u otros datos. El resultado de la comparacin puede ser true ( 1 ) o false ( 0 ). Esta tabla muestra los operadores relacionales que puede utilizar:

154

Gua del desarrollador de Server Job

Operador Eq o = Ne o # o >< o <> Lt o < Gt o > Le o <= o =< o #> Ge o >= o => o #<

Relacin Igualdad Desigualdad Menor que Mayor que Menor que o igual a Mayor que o igual a

Ejemplo X=Y X # Y, X <> Y X<Y X>Y X <= Y X >= Y

Las operaciones aritmticas se ejecutan antes de los operadores relacionales de una expresin. Por ejemplo, la expresin:
X + Y < (T - 1) / Z

es verdadera si el valor de X ms Y es menor que el valor de T menos 1 dividido por Z. Las series se comparan carcter a carcter. La serie con el cdigo de carcter ms alto se considera mayor. Si todos los cdigos de carcter son iguales, las series se consideran iguales. Un espacio se evala como menor que 0. Una serie con los espacios en blanco iniciales y finales se considera mayor que la misma serie sin los espacios en blanco. Una serie vaca siempre se compara como una serie de caracteres. No es igual al valor numrico 0. Si dos series contienen caracteres numricos, se comparan numricamente. Por ejemplo:
"22" < "44"

devuelve true. Tenga cuidado si utiliza la notacin de potencias. Por ejemplo:


"23" > "2E1"

devuelve true. A continuacin, se proporcionan ejemplos de comparaciones que se evalan en true en ASCII de 7 bits con los convenios de clasificacin estndar:
"AA" < "AB" "FILENAME" = "FILENAME" "X&" > "X#" "CL " > "CL" "kg" > "KG" "SMYTH" < "SMYTHE" B$ < "9/14/99" ;* donde B$ = "8/14/99"

No puede utilizar operadores relacionales para probar si hay un valor nulo. En su lugar, utilice la funcin IsNull.

Operadores de coincidencia de patrn


Los operaciones de coincidencia de patrn comparan una serie con un patrn de formato. Si el soporte multilingstico est habilitado, el resultado de una operacin de coincidencia depende del valor de entorno local actual de los convenios Ctype y Numeric. Los operadores de coincidencia de patrn tienen la sintaxis siguiente:
serie Match patrn
Captulo 7. Programacin BASIC

155

serie es la serie que se va a comparar. Si la serie es un valor nulo, la coincidencia es false y se devuelve 0. patrn es el patrn de formato y puede ser uno de los cdigos siguientes: Este cdigo... Coincide con este tipo de serie... ... 0X nX 0A nA 0N nN Cero o ms caracteres de cualquier tipo. Cero o ms caracteres de cualquier tipo. n caracteres de cualquier tipo. Cero o ms caracteres alfabticos. n caracteres alfabticos. Cero o ms caracteres numricos. n caracteres numricos.

'serie ' Texto exacto escrito entre comillas simples o dobles. Puede especificar una coincidencia negativa aadiendo ~ (tilde) delante del cdigo. Por ejemplo, ~ 4A coincide con una serie que no contiene cuatro caracteres alfabticos. Si n tiene ms de nueve dgitos, se utiliza como serie literal. Si la serie coincide con el patrn, la comparacin devuelve 1; de lo contrario, devuelve 0. Puede especificar varios patrones separndolos con marcas de valor. Por ejemplo, la expresin siguiente es verdadera si la direccin tiene 16 caracteres alfabticos o 4 caracteres numricos seguidos de 12 caracteres alfabticos; de lo contrario, es falsa:
address Matches "16A": CHAR(253): "4N12A"

Una serie vaca coincide con los patrones siguientes: "0A", "0X", "0N", "...", "", '' o \\.

Operadores If
Un operador If asigna un valor que cumple las condiciones especificadas. Tiene la sintaxis siguiente:
variable = If condicin Then expresin Else expresin

variable es la variable que se asigna. If condicin define la condicin que determina qu valor se asigna. Then expresin define el valor que se asigna si la condicin es true. Else expresin define el valor que se asigna si la condicin es false. El operador If es la nica forma de la construccin If...Then...Else que puede utilizarse en una expresin. Tenga en cuenta que la clusula Else es necesaria en los siguientes ejemplos:
* Devolver A o B dependiendo del valor de Column1: If Column1 > 100 Then "A" Else "B" * Aadir 1 o 2 al valor en Column2 dependiendo de lo que haya en * Column3, y devolverlo: Column2 + (If Column3 Matches "A..." Then 1 Else 2)

156

Gua del desarrollador de Server Job

Operadores lgicos
Los datos numricos, los datos de serie y el valor nulo pueden funcionar como datos lgicos: v El valor numrico 0 es false; todos los dems valores numricos son true. v Una serie vaca es false; las dems series de caracteres son true. v El valor nulo SQL no es true ni false. Tiene el valor lgico nulo. Los operadores lgicos prueban estas condiciones. Los operadores lgicos disponibles son: v And (o el equivalente &) v Or (o el equivalente !) v Not (invierte un valor lgico) Estos son los factores que determinan la prioridad de los operadores en las operaciones lgicas: v Las operaciones aritmticas y relacionales tienen preferencia sobre las operaciones lgicas. v Las operaciones lgicas se evalan de izquierda a derecha. v Las sentencias And y las sentencias Or tienen una prioridad igual. v En las clusulas If...Then...Else, el valor lgico nulo utiliza la accin false.

Operadores de asignacin
Los operadores de asignacin asignan valores a las variables. Esta tabla muestra los operadores de asignacin y sus usos:
Operador = += Sintaxis variable = expresin variable += expresin Descripcin Asigna el valor de la expresin a la variable. Suma el valor de la expresin al valor de la variable y reasigna el resultado a la variable. Resta el valor de la expresin del valor de la variable y reasigna el resultado a la variable. Concatena el valor de la variable y el valor de la expresin y reasigna el resultado a la variable.

-=

variable - = expresin

:=

variable := expresin

Este ejemplo muestra una secuencia de operaciones en la misma variable. La primera sentencia asigna el valor 5 a la variable X.
X = 5

La siguiente sentencia aade 5 al valor de X, y es equivalente a X = X + 5. El valor de X es ahora 10.


X += 5

La ltima sentencia resta 3 del valor de X, y es equivalente a X = X - 3. El valor de X es ahora 7.


X -= 3

Este ejemplo concatena una serie con la variable y es equivale a X=X:Y. Si el valor de X es `con' y el valor de Y es `catenate':
X := Y

el nuevo valor de X es `concatenate'.


Captulo 7. Programacin BASIC

157

Tipos de datos en las funciones y sentencias de BASIC


No es necesario especificar tipos de datos en las funciones y sentencias. Todos los datos se almacenan internamente como series de caracteres, y los tipos de datos se determinan en el momento de la ejecucin, segn su contexto. Hay cuatro tipos principales de datos: v Series de caracteres. Pueden representar datos alfabticos, numricos o alfanumricos como, por ejemplo, una direccin. La longitud de la serie est limitada nicamente por la memoria disponible. v Datos numricos. Se almacenan como nmeros de coma flotante o como enteros. En la mayor parte de los sistemas, el rango va de 10-307 a 10+307 con 15 dgitos decimales de precisin. v El valor nulo. Representa los datos cuyo valor es desconocido, tal como se define en SQL. v Variables de archivo. Las asigna la sentencia OpenSeq y no pueden manipularse ni formatearse de ninguna forma.

Series BASIC vacas y valores nulos


Una serie vaca es una serie de caracteres de longitud cero. Representa datos conocidos que no tienen ningn valor. Especifique una serie vaca con dos comillas dobles o simples adyacentes, o dos barras inclinadas invertidas. Por ejemplo:
o " " o \\

El valor nulo representa unos datos de valor desconocido, tal como se define en SQL. El valor nulo se representa externamente, segn sea necesario, mediante una serie de caracteres formada por el byte nico Char(128). En el tiempo de ejecucin, se le asigna un tipo de datos nulo. Los programas pueden hacer referencia al valor nulo con la variable del sistema @NULL. Para probar si un valor es el valor nulo, utilice la funcin IsNull. Si especifica un valor nulo en una funcin o en otra operacin, siempre se devuelve un valor nulo. Por ejemplo, si concatena un valor de serie con una serie vaca, se devuelve el valor de serie pero, si concatena un valor de serie con el valor nulo, se devuelve el valor nulo:
A B C X Y = = = = = @NULL "" "JONES" C:B C:A

El valor obtenido de X es "JONES", pero Y es un valor nulo.

Campos
En las funciones de IBM InfoSphere DataStage como, por ejemplo, Field o FieldStore, puede definir campos especificando subseries delimitadas. Para determinar qu constituye un campo, tenga en cuenta lo siguiente: v Una subserie seguida de un delimitador es un campo. v Si una serie empieza por un delimitador, InfoSphere DataStage supone que hay un campo que contiene una serie vaca delante del delimitador. v Si una subserie final no termina con un delimitador, InfoSphere DataStage supone que hay uno. Por ejemplo, si utiliza la serie ABC con dos puntos como delimitador, InfoSphere DataStage genera tres o cuatro campos, de la siguiente manera:
Ejemplo A:B:C: Nmero de campos 3 Explicacin Cada campo termina con un delimitador.

158

Gua del desarrollador de Server Job

Ejemplo A:B:C :A:B:C:

Nmero de campos 3 4

Explicacin InfoSphere DataStage supone que hay un delimitador final. InfoSphere DataStage supone que hay un campo que contiene una serie vaca antes del primer delimitador. InfoSphere DataStage supone que hay un campo que contiene una serie vaca antes del primer delimitador y que hay un delimitador final.

:A:B:C

Palabras reservadas
Estas palabras estn reservadas y no deben utilizarse como nombres de variable en una transformacin o una rutina: v And v Cat v Else v End v Eq v Ge v Get v v v v v v v v v v v Go GoSub GoTo Gt If Include Locked Lt Match Coincidencias Ne

v Le

v Next v Or v Rem v Remove v Repeat v THEN v Until v While

Cdigo fuente y cdigo objeto


El cdigo fuente es el formato de entrada original de la rutina escrita por el programador.

Captulo 7. Programacin BASIC

159

El cdigo objeto es la salida compilada que IBM InfoSphere DataStage invoca como una subrutina o una funcin. Una lnea de cdigo fuente tiene la sintaxis siguiente:
[ etiqueta: ] sentencia [ ; sentencia ] ...<Return>

Una lnea de cdigo fuente puede empezar con una etiqueta de sentencia. Siempre termina con Return.

Caracteres especiales
Los siguientes caracteres tienen un significado especial en las transformaciones y rutinas. Su uso est restringido en las constantes numricas y de tipo serie. Tenga en cuenta tambin que los caracteres ASCII del 0 al 10 y del 251 al 255 no deben incorporarse en las constantes de tipo serie. Caracteres Uso permitido Espacio Se utiliza en las constantes de tipo serie, o para formatear el cdigo fuente. Separador Se utiliza en las constantes de tipo serie, o para formatear el cdigo fuente. = + * \ / ^ () # $ [] , . "" '' : ; & < Se utiliza para indicar los operadores de igualdad o asignacin. Signo ms. Se utiliza para indicar el operador de suma o el operador unario ms. Signo menos. Se utiliza para indicar el operador de resta o el operador unario menos. Asterisco. Se utiliza para indicar el operador de multiplicacin o un comentario en el cdigo fuente. Barra inclinada invertida. Se utiliza para las series entrecomilladas. Barra inclinada. Se utiliza para indicar el operador de divisin. Flecha arriba. Se utiliza para indicar el operador de elevacin a una potencia. Parntesis. Se utilizan para encerrar argumentos en las funciones o dimensiones de matriz. Hash. Se utiliza para indicar el operador de no igual. Signo del dlar. Est permitido en los nombres de variable y las etiquetas de sentencias, pero no en las constantes numricas. Corchetes. Se utilizan para indicar el operador de extraccin de subserie y para encerrar determinadas expresiones. Coma. Se utiliza para separar argumentos en las funciones y subrutinas, o en las dimensiones de matriz. No est permitida en las constantes numricas. Punto. Se utiliza para indicar un separador decimal en las constantes numricas. Comillas dobles. Se utilizan para escribir series entre comillas. Comillas simples. Se utilizan para escribir series entre comillas. Dos puntos. Se utiliza para indicar el operador de concatenacin o el final de una etiqueta de sentencia. Punto y coma. Se utiliza para indicar el final de una sentencia si desea incluir un comentario en la misma lnea. Carcter &. Se utiliza para indicar el operador Y relacional. Corchete angular izquierdo. Se utiliza para indicar el operador menor que.
Gua del desarrollador de Server Job

160

> @

Corchete angular derecho. Se utiliza para indicar el operador mayor que. Signo de arroba. Reservado para su uso en variables del sistema.

Variables del sistema


IBM InfoSphere DataStage proporciona un conjunto de variables que contienen informacin til del sistema a la que puede acceder desde la transformacin o rutina. Las variables del sistema son de slo lectura. Nombre Descripcin @DATE La fecha interna en la que se inici el programa. Consulte la funcin Date. @DAY El da del mes extrado del valor de @DATE. @FALSE El compilador sustituye el valor por 0. @FM @IM Una marca de campo, Char(254). Una marca de elemento, Char(255).

@INROWNUM Contador de filas de entrada. Se utiliza en las restricciones y derivaciones en las etapas Transformer. @OUTROWNUM Contador de filas de salida (por enlace). Se utiliza en las derivaciones en las etapas Transformer. @LOGNAME El nombre de inicio de sesin del usuario. @MONTH El actual extrado del valor de @DATE. @NULL Valor nulo. @NULL.STR Representacin interna del valor nulo, Char(128). @PATH El nombre de va de acceso del proyecto InfoSphere DataStage actual. @SCHEMA El nombre de esquema del proyecto InfoSphere DataStage actual. @SM Una marca de subvalor, Char(252).

@SYSTEM. RETURN.CODE Cdigos de estado devueltos por los procesos o mandatos del sistema. @TIME La hora interna en la que se inici el programa. Consulte la funcin Time. @TM @TRUE El compilador sustituye el valor por 1. @USERNO Nmero de usuario. Una marca de texto, Char(251).

Captulo 7. Programacin BASIC

161

@VM @WHO

Una marca de valor, Char(253). Nombre del directorio del proyecto de InfoSphere DataStage actual.

@YEAR El ao actual extrado de @DATE.

Funciones y sentencias de BASIC Directivas de compilador


Las directivas de compilador son sentencias que determinan cmo se compila una rutina o una transformacin. Para hacer esto... Utilice esto... Aadir o sustituir un identificador Sentencia $Define Eliminar un identificador Sentencia $Undefine Especificar una compilacin condicional Sentencias $IfDef y $IfNDef Incluir otros programas Sentencia $Include

Declaracin
Estas sentencias declaran matrices, funciones y subrutinas para su uso en las rutinas. Para hacer esto... Utilice esto... Definir un rea de almacenamiento en la memoria Sentencia Common Definir una funcin escrita por el usuario Sentencia Deffun Declarar el nombre y las dimensiones de una variable de matriz Sentencia Dimension Identificar una subrutina interna Sentencia Subroutine

Control de trabajos
Estas funciones se pueden utilizar en una rutina de control de trabajo, que se define como parte de las propiedades de un trabajo y permite que otros trabajos se ejecuten y sean controlados desde el primer trabajo. Algunas de estas funciones tambin se pueden utilizar para obtener informacin de estado sobre el trabajo actual; son tiles en expresiones de etapa activa y en subrutinas anteriores y posteriores a la etapa. Para hacer esto... Utilice esto...

162

Gua del desarrollador de Server Job

Especificar el trabajo que desee controlar DSAttachJob Establecer parmetros para el trabajo que desee controlar DSSetParam Establecer lmites para el trabajo que desee controlar DSSetJobLimit Solicitar que se ejecute un trabajo DSRunJob Esperar a que finalice un trabajo al que se ha llamado DSWaitForJob Obtener informacin sobre el proyecto actual DSGetCustInfo Obtener informacin sobre el trabajo controlado o trabajo actual DSGetProjectInfo Obtener informacin sobre una etapa en el trabajo controlado o trabajo actual DSGetJobInfo Obtener informacin sobre un enlace en un trabajo controlado o trabajo actual DSGetStageInfo Obtener informacin sobre los parmetros de un trabajo controlado DSGetLinkInfo Obtener el suceso de registro del registro de trabajos DSGetParamInfo Obtener una serie de sucesos de registro sobre el tema especificado del registro de sucesos DSGetLogEntry Obtener una lista de ID de suceso de registro para una ejecucin determinada de la invocacin de un trabajo DSGetLogEventIds Obtener el suceso de registro ms reciente, de un tipo especificado, del registro de trabajos DSGetLogSummary Registrar un suceso en el registro de trabajo de un trabajo distinto DSLogEvent Registrar un mensaje de error muy grave en el archivo de registro de un trabajo y terminar anormalmente el trabajo DSLogFatal Registrar un mensaje de informacin en el archivo de registro de un trabajo DSLogInfo Poner un mensaje de informacin en el registro de trabajo de un trabajo actual de control de trabajo DSLogToController Registrar un mensaje de aviso en el archivo de registro de un trabajo DSLogWarn Generar una serie que describe el estado actual de un trabajo conectado vlido DSMakeJobReport Insertar argumentos en la plantilla de mensaje DSMakeMsg

Captulo 7. Programacin BASIC

163

Asegurar que un trabajo est en el estado correcto para ser ejecutado y validado DSPrepareJob Interactuar con el recurso de envo de correo del sistema DSSendMail Registrar un mensaje de aviso en el archivo de registro de un trabajo DSTransformError Convertir un estado de control de trabajo o cdigo de error en un mensaje de texto explicativo DSTranslateCode Suspender un trabajo hasta que exista o no exista un archivo nombrado DSWaitForFile Comprobar si est catalogada una rutina de BASIC, en el VOC como elemento invocable o en el espacio de catlogo DSCheckRoutine Ejecutar un mandato del motor de servidor o de DOS desde una subrutina anterior/posterior DSExecute Detener un trabajo controlado DSStopJob Devolver un descriptor de contexto de trabajo obtenido anteriormente de DSAttachJob DSDetachJob Establece un mensaje de estado que devolver un trabajo como mensaje de terminacin cuando finalice DSSetUserStatus Especificar si un trabajo genera metadatos operativos cuando se ejecuta (altera temporalmente el valor predeterminado del proyecto) DSSetGenerateOpMetaData

Control del programa


Estas sentencias controlan el flujo del programa con la ejecucin directa del programa mediante bucles, subrutinas, etc. Para hacer esto... Utilice esto... Iniciar un conjunto de sentencias Case Begin Case (consulte Sentencia Case) Especificar condiciones para el flujo del programa Case (consulte Sentencia Case) Finalizar un conjunto de sentencias Case End Case (consulte Sentencia Case) Finalizar un programa o un bloque de sentencias Sentencia End Llamar a una subrutina externa Sentencia Call Llamar a una subrutina interna Sentencia GoSub Especificar una condicin para llamar a una subrutina interna Sentencias On...GoSub

164

Gua del desarrollador de Server Job

Volver de una subrutina externa o interna Sentencia Return Definir el inicio de un bucle For...Next For (consulte Sentencias For...Next) Definir el final de un bucle For...Next Next (consulte Sentencias For...Next) Ir a la siguiente iteracin de un bucle Continue (consulte Sentencias For...Next) Crear un bucle Sentencias Loop...Repeat Definir condiciones para que se detenga un bucle While, Until (consulte Sentencias For...Next) Salir de un bucle Exit (consulte Sentencias For...Next) Invocar una subrutina de una sentencia sin condiciones Sentencia GoTo Invocar una subrutina de una sentencia con condiciones Sentencia On...GoTo Especificar condiciones para el flujo del programa Operador If...Then...Else

Proceso de archivo secuencial


Estas sentencias y funciones se utilizan para abrir, leer y cerrar archivos para el proceso secuencial. Para hacer esto... Utilice esto... Abrir un archivo para el proceso secuencial Sentencia OpenSeq Leer una lnea de un archivo abierto con OpenSeq ReadSeq Escribir una lnea en un archivo abierto con OpenSeq Funcin WriteSeq Escribir una lnea en un archivo abierto con OpenSeq y guardado en disco Funcin WriteSeqF Truncar un archivo abierto con OpenSeq Funcin WEOFSeq Cerrar un archivo abierto con OpenSeq Sentencia CloseSeq Buscar el estado de un archivo abierto con OpenSeq Funcin Status

Verificacin de series y formateo


Estas funciones realizan tareas de formateo de series: Para hacer esto... Utilice esto...
Captulo 7. Programacin BASIC

165

Comprobar si una serie es alfabtica Funcin Alpha Verificar con una suma de comprobacin de 16 bits Funcin Checksum Verificar con un cdigo de comprobacin de redundancia cclica de 32 bits Funcin CRC32 Entrecomillar una serie Funcin DQuote Delimita una serie con comillas simples Funcin SQuote Analizar una serie fonticamente Funcin Soundex Convertir una serie a maysculas Funcin UpCase Convertir una serie a minsculas Funcin DownCase Sustituir caracteres especificados en una variable Funcin Convert Sustituir caracteres especificados en una serie Sentencia Convert Sustituir o suprimir caracteres en una serie Funcin Exchange Comparar la igualdad de dos series Funcin Compare Calcular el nmero de caracteres en una serie Funcin Len Calcular la longitud de una serie en posiciones de visualizacin Funcin LenDP Recortar los espacios en blanco excedentes de una serie Funcin Trim Funcin TrimB Funcin TrimF Crear una serie formada slo por espacios Funcin Space

Extraccin de subseries y formateo


Puede extraer y manipular las subseries y los campos utilizando estas funciones. Para hacer esto... Utilice esto... Encontrar la columna inicial de una subserie Funcin Index Sustituir una o varias instancias de una subserie Funcin Change Devolver la posicin de la columna antes o despus de una subserie Funcin Col1 Funcin Col2, Contar el nmero de veces que una subserie aparece en una serie Funcin Count

166

Gua del desarrollador de Server Job

Contar las subseries delimitadas en una serie Funcin DCount Sustituir una o varias instancias de una subserie Funcin Ereplace Devolver una subserie delimitada Funcin Field Sustituir, suprimir o insertar subseries en una serie Funcin FieldStore Doblar las series para crear subseries Funcin Fold Doblar las series para crear subseries utilizando las posiciones de visualizacin de los caracteres Funcin FoldDP Extraer los primeros n caracteres de una serie Funcin Left Extraer los ltimos n caracteres de una serie Funcin Right Buscar una subserie que coincida con un patrn Funcin MatchField Repetir una serie para crear una serie nueva Funcin Str Buscar una matriz dinmica de una expresin Sentencia LOCATE

Conversin de datos
Estas funciones realizan conversiones numricas y de caracteres. Para hacer esto... Utilice esto... Convertir valores de cdigo ASCII en sus equivalentes EBCDIC Funcin Ebcdic Convertir valores de cdigo EBCDIC en sus equivalentes ASCII Funcin Ascii Convertir un valor de cdigo ASCII en su equivalente de carcter Funcin Char Convertir un carcter ASCII en su valor de cdigo Funcin Seq Convertir valores hexadecimales en decimales Funcin Xtd Convertir valores decimales en hexadecimales Funcin Dtx Convertir un valor numrico en uno de coma flotante con la precisin especificada Funcin FIX Convertir un valor numrico en uno de coma flotante sin prdida de precisin Funcin REAL Generar un carcter individual en formato Unicode Funcin UniChar
Captulo 7. Programacin BASIC

167

Convertir un carcter Unicode en su valor decimal equivalente Funcin UniSeq

Formateo de datos
Estas funciones pueden utilizarse para formatear los datos en horas, fechas, cantidades monetarias, etc. Para hacer esto... Utilice esto... Convertir datos para la salida Funcin Oconv Convertir datos en la entrada Funcin Iconv Formatear datos para la salida Funcin Fmt Formatear datos por posicin de visualizacin Funcin FmtDP en la pgina 232

Funciones de entorno local


Estas funciones se utilizan para establecer o identificar el entorno local actual. Para hacer esto... Utilice esto... Establecer un entorno local SetLocale Obtener un entorno local Funcin GetLocale

Sentencia $Define
Define los identificadores que controlan la compilacin del programa o proporciona el texto de sustitucin de un identificador. No est disponible en las expresiones.

Sintaxis
$Define identificador [texto.sustitucin]

El valor de identificador es el smbolo que se va a definir. Puede ser cualquier identificador vlido. El valor de texto.sustitucin es una serie de caracteres que el compilador utiliza para sustituir identificador en todos los casos en que aparece en el programa que contiene la sentencia $Define.

Comentarios
Especifique un espacio en blanco para separar el identificador del texto.sustitucin. Los siguientes espacios en blancos se consideran parte del texto.sustitucin. Finalice el texto.sustitucin con una nueva lnea. No incluya comentarios despus del texto.sustitucin o se incluirn como parte del texto de sustitucin.

168

Gua del desarrollador de Server Job

Ejemplos
Este ejemplo muestra cmo puede utilizarse $Define en el tiempo de compilacin para determinar si una rutina opera en modalidad de depuracin, y cmo se utilizan $IfDef y $IfNDef para controlar el flujo del programa, segn corresponda:
* Establece la siguiente lnea en $UnDefine para desactivar el cdigo de depuracin $Define DebugMode ... $IfDef DebugMode * En modalidad de depuracin, se registra cada vez mediante esta rutina. Call DSLogInfo("Transform entered,arg1 = ":Arg1, "Test") $EndIf

Este ejemplo muestra cmo puede utilizarse $Define para sustituir texto del programa por un identificador simblico.
* Da un nombre simblico a los ltimos 3 caracteres del * argumento de entrada de la rutina de transformacin. $Define NameSuffix Arg1[3] ... If NameSuffix = "X27" Then * La accin se basa en un valor especfico en los ltimos 3 caracteres. ...End

Sentencias $IfDef y $IfNDef


Prueba un identificador para ver si est definido o no definido. No est disponible en las expresiones.

Sintaxis
{$IfDef | IfNDef} identificador [ sentencias ] $Else [ sentencias ] $EndIf

identificador es el identificador que se prueba. $Else especifica las sentencias alternativas que se ejecutan. $EndIf finaliza el bloque de compilacin condicional.

Comentarios
Con $IfDef, si el identificador est definido por una sentencia $Define anterior, todas las lneas de cdigo fuente del programa que aparecen entre la sentencia $IfDef y la sentencia $EndIf de cierre se compilan. Con $IfNDef, las lneas se compilan si el identificador no est definido. Las sentencias $IfDef y $IfNDef se pueden anidar hasta 10 niveles.

Ejemplo
Este ejemplo muestra cmo puede utilizarse $Define en el tiempo de compilacin para determinar si una rutina opera en modalidad de depuracin, y cmo se utilizan $IfDef y $IfNDef para controlar el flujo del programa, segn corresponda:
* Establece la siguiente lnea en $UnDefine para desactivar el cdigo de depuracin $Define DebugMode ...

Captulo 7. Programacin BASIC

169

$IfDef DebugMode * En modalidad de depuracin, se registra cada vez mediante esta rutina. Call DSLogInfo("Transform entered,arg1 = ":Arg1, "Test") $EndIf

Sentencia $Include
Inserta el cdigo fuente contenido en un archivo aparte y lo compila con el programa principal. No est disponible en las expresiones.

Sintaxis
$Include programa

Comentarios
El archivo incluido debe estar en el subdirectorio del proyecto DSU_BP. Puede anidar sentencias $Include.

Sentencia $Undefine
Elimina un identificador que se ha establecido utilizando la sentencia $Define. Si no se establece ningn identificador, $Undefine no tiene ningn efecto. No est disponible en las expresiones.

Sintaxis
$Undefine identificador

Operador []
Sintaxis
Extrae una subserie de una serie de caracteres. La segunda sintaxis acta como la funcin Field. Los corchetes del operador [ ] se muestran en negrita y cursiva en la sintaxis y deben especificarse.
serie [ [ inicio,] longitud ] serie[ delimitador, instancia, repeticiones ]

serie es la serie de caracteres. Si la serie es un valor nulo, el valor extrado tambin es nulo. inicio es un nmero que define la posicin inicial del primer carcter de la subserie. Un valor 0 o un valor negativo se supone que es 1. Si especifica una posicin inicial despus del final de serie, se devuelve una serie vaca. longitud es el nmero de caracteres en la subserie. Si especifica 0 o un nmero negativo, se devuelve una serie vaca. Si especifica ms caracteres de los que quedan entre el inicio y el final de la serie, el valor devuelto contiene slo el nmero de caracteres que quedan en serie. delimitador es un carcter que delimita el inicio y el final de la subserie. Si no se encuentra el delimitador en la serie, se devuelve una serie vaca, salvo que instancia sea 1, en cuyo caso se devuelve la serie. instancia especifica qu instancia del delimitador marca el final de la subserie. Un valor menor que 1 se supone que es 1.

170

Gua del desarrollador de Server Job

repeticin especifica el nmero de veces que se repite la extraccin en la serie. Un valor menor que 1 se supone que es 1. Se devuelve el delimitador con las sucesivas subseries.

Comentarios
Puede especificar una subserie formada por los n ltimos caracteres de una serie utilizando la primera sintaxis y omitiendo inicio.

Ejemplos
En el ejemplo siguiente (donde se utiliza la segunda sintaxis), el cuarto carcter # es el terminador de la subserie que se va a extraer, y se extrae un campo:
A="###DHHH#KK" B = A["#",4,1]

El resultado es B es igual a DHHH. Las sintaxis siguientes especifican subseries que empiezan en la posicin de carcter 1:
expression [ 0, length ] expression [ -1, length ]

El ejemplo siguiente especifica una subserie de los cinco ltimos caracteres:


"1234567890" [5]

El resultado es 67890. Todas las sintaxis de subserie se pueden utilizar con el operador de asignacin ( = ). El nuevo valor asignado a la variable sustituye a la subserie especificada por el operador [ ]. Este uso no est disponible en las expresiones. Por ejemplo:
A = 12345 A[3] = 1212

El resultado es A es igual a 121212. Como no se ha especificado ningn argumento de longitud, A[3] sustituye los tres ltimos caracteres de A (345) por el nuevo valor asignado para esa subserie (1212).

Sentencia *
Inserta un comentario en un programa.

Sintaxis
* [texto.comentario]

Comentarios
Un comentario puede aparecer en cualquier lugar del programa, excepto en el texto de sustitucin de un identificador (consulte la sentencia $Define). Cada lnea de comentarios completa debe empezar por un asterisco (*). Si aade un comentario al final de una lnea que contiene una sentencia ejecutable, debe escribir un carcter de punto y coma (;) antes del asterisco.

Ejemplo
Este ejemplo contiene un comentario en lnea y un comentario de lnea completa.

Captulo 7. Programacin BASIC

171

MyVar = @Null ;* establece la variable en un valor nulo If IsNull(MyVar * 10) Then * Ser true, ya que toda operacin aritmtica que incluya un valor nulo * da como resultado un valor nulo. End

Funcin Abs
Devuelve el valor absoluto (sin signo) de un nmero.

Sintaxis
Abs (nmero)

nmero es el nmero o la expresin que desea evaluar.

Comentarios
Una forma til de eliminar el signo ms o menos de una serie. Por ejemplo, si nmero es -6 o +6, Abs devuelve 6. Si nmero es un valor nulo, se devuelve un valor nulo.

Ejemplo
Este ejemplo utiliza la funcin Abs para calcular el valor absoluto de un nmero:
AbsValue = Abs(12.34) ;* devuelve 12.34 AbsValue = Abs(-12.34) ;* devuelve 12.34

Funcin Alpha
Comprueba si una serie es alfabtica. Si el soporte multilingstico est habilitado, el resultado de esta funcin depende del valor de entorno local actual del convenio Ctype.

Sintaxis
Alpha (serie)

serie es la serie o la expresin que desea evaluar.

Comentarios
Las series alfabticas contienen slo los caracteres de a-z o A-Z. Alpha devuelve 1 si la serie es alfabtica, un valor nulo si la serie es un valor nulo y 0 en los dems casos.

Ejemplos
Estos ejemplos muestran cmo comprobar que una serie contiene slo caracteres alfabticos:
Column1 = "ABcdEF%" * el carcter "%" no es alfabtico Column2 = (If Alpha(Column1) Then "A" Else "B") * Column2 se establece en "B" Column1 = "" * tenga en cuenta que la serie vaca no es un carcter alfabtico Column2 = (If Alpha(Column1) Then "A" Else "B") * Column2 se establece en "B"

172

Gua del desarrollador de Server Job

Funcin Ascii
Convierte los valores de los caracteres de una serie del formato EBCDIC al formato ASCII.

Sintaxis
Ascii (serie)

serie es la serie o la expresin que desea convertir. Si la serie es un valor nulo, se devuelve un valor nulo.

Comentarios
Las funciones Ascii y Ebcdic realizan operaciones complementarias. Nota: Si el soporte multilingstico est habilitado, esta funcin puede devolver datos no reconocidos para la correlacin de juego de caracteres actual.

Ejemplo
Este ejemplo muestra cmo se utiliza la funcin Ascii para comparar una serie de bytes EBCDIC:
EbcdicStr = Char(193):Char(241) AsciiStr = Ascii(EbcdicStr) If AsciiStr = "A1" Then ... EndIf ;* letra A dgito 1 en EBCDIC ;* convierte EBCDIC en ASCII ;* se compara con la constante ASCII ;* ... se utiliza esta ramificacin

Sentencia de asignacin
Las sentencias de asignacin son =, +=, -= y :=. Asignan valores a las variables. No est disponible en las expresiones. s

Sintaxis
variable = valor variable += valor variable -= valor variable := valor

valor es el valor que desea asignar. Puede ser una expresin o una constante cualquiera, incluido el valor nulo.

Comentarios
= asigna el valor a la variable. += aade el valor a la variable. -= resta el valor de la variable. := concatena el valor al final de la variable. Para asignar un valor nulo a una variable, utilice esta sintaxis:
variable = @NULL
Captulo 7. Programacin BASIC

173

Para asignar una serie de caracteres que contiene nicamente el carcter utilizado para representar el valor nulo a una variable, utilice esta sintaxis:
variable = @NULL.STR

funciones Bit
Las funciones Bit son BitAnd, BitOr, BitNot, BitSet, BitReset, BitTest y BitXOr. Realizan operaciones bit a bit en los enteros.

Sintaxis
BitAnd | BitOr | BitXOr (entero1, entero2) BitSet | BitReset | BitTest (entero, nmero.bit) BitNot (entero [,nmero.bit])

entero1 y entero2 son los enteros que se van a comparar. Si alguno de los valores de entero es nulo, se devuelve un valor nulo. Los lugares decimales se truncan antes de la evaluacin. entero es el entero que se va a evaluar. Si el entero es un valor nulo, se devuelve un valor nulo. Los lugares decimales se truncan antes de la evaluacin. nmero.bit es el nmero del bit en el que se acta. Los bits se cuentan de derecha a izquierda a partir de 0. Si nmero.bit es un valor nulo, el programa falla con un error de tiempo de ejecucin.

Comentarios
Las funciones Bit operan en una palabra de complemento de a dos de 32 bits. No utilice estas funciones si desea que el cdigo sea porttil, ya que el valor de bit superior puede variar en otro hardware. BitAnd compara dos enteros bit a bit. Para cada bit, devuelve el bit 1 si ambos bits son 1; de lo contrario, devuelve el bit 0. BitOr compara dos enteros bit a bit. Para cada bit, devuelve el bit 1 si uno de los bits o ambos son 1; de lo contrario, devuelve el bit 0. BitXOr compara dos enteros bit a bit. Para cada bit, devuelve el bit 1 si slo uno de los dos bits es 1; de lo contrario, devuelve el bit 0. BitTest prueba si se ha establecido el bit especificado. Devuelve 1 si el bit se ha establecido; de lo contrario, devuelve 0. BitNot invierte los bits en un entero, es decir, cambia el bit 1 por el bit 0, y viceversa. Si se especifica nmero.bit, se invierte ese bit; de lo contrario, se invierten todos los bits. BitSet establece el bit especificado en 1. Si ya es 1, no se cambia. BitReset restablece el bit especificado en 0. Si ya es 0, no se cambia.

Ejemplos
BitAnd
Result = BitAnd(6, 12) ;* Result is 4 * (bin) (dec) BitAnd (bin) (dec) gives (bin) (dec) * 110 6 1100 12 100

174

Gua del desarrollador de Server Job

BitNot
Result = BitNot(6) Result = BitNot(15, 0) Result = BitNot(15, 1) Result = BitNot(15, 2) * (bin) (dec) BitNot bit# * 110 6 (all) * 1111 15 0 * 1111 15 1 * 1111 15 2 ;* ;* ;* ;* gives Result is -7 Result is 14 Result is 13 Result is 11 (bin) (dec) 1...1001 7 1110 14 1101 13 1011 11

BitOr
Result = BitOr(6, 12) ;* Result is 14 * (bin) (dec) BitOr (bin) (dec) gives (bin) (dec) * 110 6 1100 12 1110 14

BitReset
Result = Result = Result = Result = * (bin) * 11101 * 11101 * 10 * 10 BitReset(29, 0) ;* Result is 28 BitReset(29, 3) ;* Result is 21 BitReset(2, 1) ;* Result is 0 BitReset(2, 0) ;* Result is 2 (dec) BitReset bit# gives (bin) (dec) 29 0 11100 28 29 3 10101 21 2 1 00 0 2 0 10 2

BitSet
Result = Result = Result = Result = * (bin) * 10100 * 10100 * 10 * 10 BitSet(20, 0) BitSet(20, 3) BitSet(2, 0) BitSet(2, 1) (dec) BitReset bit# 20 0 20 2 2 0 2 1 ;* Result is 21 ;* Result is 28 ;* Result is 3 ;* Result is 2 gives (bin) (dec) 10101 21 11100 28 11 3 10 2

BitTest
Result = Result = Result = Result = * (bin) * 1011 * 1011 * 1011 * 1011 BitTest(11, 0) BitTest(11, 1) BitTest(11, 2) BitTest(11, 3) (dec) BitTest bit# 11 0 11 1 11 2 11 3 ;* ;* ;* ;* is: 1 1 0 1 Result Result Result Result is is is is 1 1 0 1

BitXOr
Result = BitXor(6, 12) ;* Result is 10 * (bin) (dec) BitXOr (bin) (dec) gives (bin) (dec) * 110 6 1100 12 1010 10

Funciones orientadas a los bytes


IBM InfoSphere DataStage proporciona cuatro funciones que pueden utilizarse para manipular series internas a nivel de byte. v Byte permite crear una serie byte a byte. v ByteLen devuelve la longitud de una serie en bytes.
Captulo 7. Programacin BASIC

175

v ByteType determina la funcin interna de un determinado byte. v ByteVal determina el valor de un determinado byte en una serie. Nota: Utilice estas funciones con cuidado: si crea una serie no vlida, puede producir resultados inesperados cuando la procese otra funcin.

Funcin Byte
Devuelve un byte de un valor numrico de entrada.

Sintaxis
Byte (expresin)

expresin es un valor de carcter en el rango del 0 al 255.

Comentarios
La funcin Byte puede utilizarse para crear una serie byte a byte, en lugar de carcter a carcter. Si el soporte multilingstico no est habilitado, la funcin Byte funciona como la funcin Char.

Funcin ByteLen
Devuelve la longitud de una serie interna en bytes, en lugar de en caracteres.

Sintaxis
ByteLen (expresin)

expresin es la serie que se va a evaluar.

Comentarios
Si expresin es una serie vaca, el resultado es 0. Si expresin es un nulo SQL, el resultado es un nulo.

Funcin ByteType
Devuelve la funcin de un determinado byte en el cdigo de carcter interno.

Sintaxis
ByteType (valor)

valor es un valor de byte, del 0 al 255, cuya funcin debe determinarse. Si valor es un nulo SQL, se devuelve un valor nulo.

Comentarios
El resultado se devuelve como uno de los valores siguientes: Valor 0 1 Significado El byte final de un carcter de varios bytes Un carcter de un solo byte
Gua del desarrollador de Server Job

176

2 3 4 5 -1

El byte inicial de un carcter de dos bytes El byte inicial de un carcter de tres bytes Reservado (el byte inicial de un carcter de cuatro bytes) Un delimitador del sistema El valor de entrada no est en el rango del 0 al 255

Funcin ByteVal
Devuelve el valor interno de un byte especificado en una serie. ByteVal

Sintaxis
ByteVal ( serie [, nmero_byte ] )

serie contiene el byte que se va a evaluar. Una serie vaca o un valor nulo devuelve -1. Una serie que tiene menos bytes que el nmero especificado en nmero_byte devuelve -1. nmero_byte es el nmero del byte en la serie que se evala. Si se omite o es menor que 1, se utiliza 1.

Comentarios
El resultado se devuelve como un valor para el byte en el rango del 0 al 255.

Sentencia Call
Llama a una subrutina. No est disponible en las expresiones.

Sintaxis
Call subrutina [ ( argumento [ , argumento ] ... ) ]

argumento es una variable, una expresin o una constante que desea pasar a la subrutina. Si hay varios argumentos, deben ir separados por comas.

Comentarios
Call transfiere el control de programa del programa principal a una subrutina externa compilada. Utilice una sentencia Return para devolver el control al programa principal. El nmero de argumentos especificados en una sentencia Call debe ser igual al nmero de argumentos especificados en la sentencia Subroutine que identifica la subrutina. Las constantes se pasan por valor; las variables se pasan por referencia. Si desea pasar variables por valor, delimtelas con parntesis. Nota: Si pasa las variables por valor, un cambio en la variable en la subrutina no afecta al valor de la variable en el programa principal. Si pasa las variables por referencia, un cambio en la variable en la subrutina tambin afecta a programa principal.

Captulo 7. Programacin BASIC

177

Ejemplo
Este ejemplo muestra cmo llamar a una rutina anterior/posterior denominada MyRoutineB desde otra rutina denominada MyRoutineA:
Subroutine MyRoutineA(InputArg, ErrorCode) ErrorCode = 0 ;* se establece el cdigo de error local * Cuando se invoca una rutina escrita por el usuario que se mantiene en el * repositorio de DataStage, debe aadir un prefijo "DSU.". * Asegrese de proporcionar otra variable para el segundo argumento * de la rutina invocada para mantenerlo aparte del suyo * propio. Call DSU.MyRoutineB("First argument", ErrorCodeB) If ErrorCodeB <> 0 Then ... ;* la rutina invocada ha fallado; acte segn corresponda Endif Return

Sentencia Case
Altera la secuencia de ejecucin en el programa de acuerdo con el valor de una expresin. No est disponible en las expresiones.

Sintaxis
Begin Case expresin expresin End Case Case sentencias [ Case sentencias ] ...

expresin es un valor que se utiliza para probar el caso. Si expresin es un valor nulo, se supone que es false. sentencias son las sentencias que se ejecutan si expresin es true.

Comentarios
Las sentencias Case pueden estar repetidas. Si el valor de expresin en la primera sentencia Case es true, se ejecutan las sentencias siguientes. Si expresin es false, el programa cambia a la siguiente sentencia Case. El proceso se repite hasta que se alcance una sentencia End Case. Si ms de una expresin es true, slo se acta en la primera. Si ninguna expresin es true, no se ejecuta ninguna de las sentencias. Para probar si una variable contiene un valor nulo, utilice esta sintaxis:
Case IsNull (expresin)

Para especificar un caso predeterminado para que se ejecute si las dems expresiones son false, utilice una expresin que contenga el valor constante 1.

Ejemplo
Este ejemplo utiliza sentencias Case en el argumento de entrada para seleccionar el tipo de proceso que se ejecuta en una rutina:
Function MyTransform(Arg1) Begin Case Case Arg1 = 1 Reply = "A" Case Arg1 = 2 Reply = "B"

178

Gua del desarrollador de Server Job

Case Arg1 > 2 And Arg1 < 11 Reply = "C" Case @True ;* los dems valores Call DSTransformError("Bad arg":Arg1, "MyTransform" Reply = "" End Case Return(Reply)

Sentencia Cats
Concatena dos series.

Sintaxis
Cats (serie1, serie2)

serie1 y serie2 son las series que se concatenarn. Si alguna de las series es un valor nulo, se devuelve un valor nulo.

Ejemplo
String1 = "ABC" String2 = "1234" Result = Cats(String1, String2) * El resultado contiene "ABC1234"

Funcin Change
Sustituye una o varias instancias de una subserie.

Sintaxis
Change (serie, subserie, sustitucin [,nmero [,inicio]])

serie es la serie o la expresin en la que desea cambiar subseries. Si serie se evala en un valor nulo, se devuelve el valor nulo. subserie es la subserie que desea sustituir. Si est vaca, se devuelve el valor de serie (esta es la nica diferencia entre Change y Ereplace). sustitucin es la subserie de sustitucin. Si sustitucin es una serie vaca, se eliminan todas las apariciones de subserie. nmero especifica el nmero de instancias de subserie que hay que sustituir. Para cambiar todas las instancias, utilice un valor menor que 1. inicio especifica la primera instancia que hay que sustituir. Un valor menor que 1 toma el valor 1 de forma predeterminada.

Comentarios
Un valor nulo para serie devuelve un valor nulo. Si utiliza un valor nulo para otra variable, se produce un error de tiempo de ejecucin.

Captulo 7. Programacin BASIC

179

Ejemplos
El siguiente ejemplo sustituye todas las apariciones de una subserie por otra:
MyString = "AABBCCBBDDBB"NewString = Change(MyString, "BB", "xxx") * El resultado es "AAxxxCCxxxDDxxx"

El ejemplo siguiente sustituye slo las dos primeras apariciones:


MyString = "AABBCCBBDDBB"NewString = Change (MyString, "BB", "xxx", 2, 1)* El resultado es "AAxxxCCxxxDDBB"

El ejemplo siguiente elimina todas las apariciones de la subserie:


MyString = "AABBCCBBDDBB"NewString = Change (MyString, "BB", "")* El resultado es "AACCDD"

Funcin Char
Genera un carcter ASCII a partir de su valor de cdigo numrico.

Sintaxis
Char (cdigo)

cdigo es el valor de cdigo ASCII del carcter o una expresin que se evala en el cdigo.

Comentarios
Tenga cuidado con los valores nulos. Si el cdigo es un valor nulo, se devuelve un nulo. Si el cdigo es 128, el valor devuelto es CHAR(128), es decir, la variable del sistema @NULL.STR. La funcin Char es la inversa de la funcin Seq. Nota: Si el soporte multilingstico est habilitado, los valores de cdigo en el rango del 129 al 247 devuelve valores Unicode en el rango de x0081 a x00F7. Estos son caracteres de varios bytes equivalentes a los mismos valores en el juego de caracteres ISO 8859 (Latin 1). Para generar los bytes especficos con los valores del 129 al 247, utilice la funcin Byte.

Ejemplo
Este ejemplo utiliza la funcin Char para devolver el carcter asociado con el cdigo de carcter especificado:
MyChar = Char(65) ;* devuelve "A" MyChar = Char(97) ;* devuelve "a" MyChar = Char(32) ;* devuelve un espacio MyChar = Char(544) * devuelve un espacio (544 = 32 mdulos 256)

Funcin Checksum
Devuelve un valor de suma de comprobacin de una serie.

Sintaxis
Checksum (serie)

180

Gua del desarrollador de Server Job

serie es la serie a la que desea aadir la suma de comprobacin. Si serie es un valor nulo, se devuelve el valor nulo.

Ejemplo
En este ejemplo, se utiliza la funcin Checksum para devolver un nmero que es un cdigo de redundancia cclica para la serie especificada:
MyString = "This is any arbitrary string value" CheckValue = Checksum(MyString) ;* devuelve 36235

Sentencia CloseSeq
Cierra un archivo despus del proceso secuencial.

Sintaxis
CloseSeq variable.archivo [On Error sentencias ]

variable.archivo especifica un archivo abierto anteriormente con una sentencia OpenSeq. On Error sentencias especifica las sentencias que se ejecutan si se produce un error muy grave durante el proceso de la sentencia CloseSeq.

Comentarios
Cada referencia de archivo secuencial en una rutina debe ir precedida de una sentencia OpenSeq aparte para el archivo. OpenSeq establece un bloqueo de registro de actualizacin en el archivo. De este modo, se impide que ningn otro programa cambie el archivo mientras se procesa. CloseSeq restablece este bloqueo despus de procesar el archivo. Varias operaciones OpenSeq en el mismo archivo slo generan un bloqueo de registro de actualizacin, por lo que slo debe incluir una sentencia CloseSeq por archivo. Si se produce un error muy grave y no se ha especificado ninguna clusula On Error: v Aparece un mensaje de error. v Se retrotrae alguna transaccin no confirmada iniciada en el entorno de ejecucin actual. v Termina el programa actual. Si se utiliza la clusula On Error, el valor devuelto por la funcin Status es el nmero de error.

Funcin Col1
Devuelve la posicin del carcter anterior a la subserie especificada en la funcin Field ejecutada ms recientemente.

Sintaxis
Col1 ( )

Comentarios
La posicin del carcter se devuelve como un nmero. El valor devuelto es local para la rutina que ejecuta la funcin Field. El valor de Col1 en la rutina se inicializa como 0. Col1 devuelve un valor 0 si: v No se ha ejecutado la funcin Field.
Captulo 7. Programacin BASIC

181

v La expresin de delimitador de la funcin Field es una serie vaca o el valor nulo. v No se ha encontrado la serie.

Ejemplos
La funcin Field del ejemplo siguiente devuelve la subserie "CCC". Col1 ( ) devuelve 8, la posicin del delimitador (/) que precede a CCC.
* Extraer tercer campo delimitado por "/". SubString = Field("AAA/BBB/CCC", "/" ,3) Position = Col1() ;* obtiene la posicin del delimitador

En el ejemplo siguiente, la funcin Field devuelve una subserie de dos campos con el delimitador (.) que los separa: 4.5. Col1 ( ) devuelve 6, la posicin del delimitador que precede a 4.
* Obtener cuarto y quinto campo delimitado por ".". SubString = Field("1.2.3.4.5.6", ".", 4, 2) Position = Col1() ;* obtiene la posicin del delimitador

Funcin Col2
Devuelve la posicin del carcter que sigue a la subserie especificada en la funcin Field ejecutada ms recientemente.

Sintaxis
Col2 ( )

Comentarios
La posicin del carcter se devuelve como un nmero. El valor devuelto es local para la rutina que ejecuta la funcin Field. El valor de Col2 en la rutina se inicializa como 0. Cuando se devuelve el control al programa de llamada, se restaura el valor guardado de Col2. Col2 devuelve un valor 0 si: v No se ha ejecutado la funcin Field. v La expresin de delimitador de la funcin Field es una serie vaca o el valor nulo. v No se ha encontrado la serie.

Ejemplos
La funcin Field del ejemplo siguiente devuelve la subserie "CCC". Col2 ( ) devuelve 12, la posicin que el delimitador (/) habra ocupado despus de CCC si no se hubiera encontrado el final de la serie.
* Extraer tercer campo delimitado por "/". SubString = Field("AAA/BBB/CCC", "/" ,3) Position = Col2() ;* devuelve el final de la serie de hecho

En el ejemplo siguiente, la funcin Field devuelve una subserie de dos campos con el delimitador (.) que los separa: 4.5. Col2 ( ) devuelve 10, la posicin del delimitador que sigue a 5.
* Obtener cuarto y quinto campo delimitado por ".". SubString = Field("1.2.3.4.5.6", ".", 4, 2) Position = Col2() ;* obtiene la posicin del delimitador

En el ejemplo siguiente, Field devuelve toda la serie, ya que el delimitador (.) no se encuentra. Col2 ( ) devuelve 6, la posicin tras el ltimo carcter de la serie.

182

Gua del desarrollador de Server Job

* * Intenta obtener primero el primer campo delimitado por ".", * pero falla. SubString = Field("9*8*7", ".", 1) Position = Col2() ;* devuelve la longitud de la serie + 1

En el ejemplo siguiente, Field devuelve una serie vaca, ya que no existe una dcima aparicin de la subserie en la serie. Col2 ( ) devuelve 0 porque no se ha encontrado la subserie.
* * Intenta obtener primero el dcimo campo delimitado por ".", * pero falla. SubString = Field("9*8*7*6*5*4", "*", 10) Position = Col2 ;* devuelve 0

Sentencia Common
Define un rea de almacenamiento comn para las variables. No est disponible en las expresiones.

Sintaxis
Common /nombre / variable [ ,variable] ...

/nombre/ es el nombre que identifica el rea comn y es significativo hasta 31 caracteres. variable es el nombre de una variable que se almacena en el rea comn.

Comentarios
Todas las rutinas que tienen declarado el /nombre/ comn pueden acceder a las variables del rea comn. (Utilice la sentencia $Include para definir el rea comn en cada rutina). Las variables correspondientes pueden tener distintos nombres en distintas rutinas, pero deben definirse en el mismo orden. La sentencia Common debe preceder a cualquier referencia a las variables que denomina. Las matrices se pueden dimensionar y denominar con una sentencia Common. Se pueden volver a dimensionar ms tarde con una sentencia Dimension, pero la sentencia Common debe aparecer antes de la sentencia Dimension.

Ejemplo
Este ejemplo muestra dos rutinas que se comunican mediante un rea comn denominada MyCommon, definida en un archivo aparte en el subdirectorio DSU_BP cuyo nombre est declarado por una sentencia $Include: El archivo DSU_BP \ MyCommon.H contiene:
Common /MyCommon/ ComVar1, ;* variable individual ComVar2(10) ;* matriz de 10 variables

Las rutinas se definen como anteriores/posteriores, de la siguiente manera:


Subroutine MyRoutineA(InputArg, ErrorCode) $Include MyCommon.H ErrorCode = 0 * Campos distribuidos para el argumento entrante en la matriz * comn: For n = 1 To 10 ComVar2(n) = Field(InputArg, ",", n) If ComVar2(n) <> "" Then ComVar1 = n ;* indicate highest one used End
Captulo 7. Programacin BASIC

183

Next n Call DSU.MyRoutineB("another arg", ErrorCodeB) * Etc. ... Return Subroutine MyRoutineB(InputArg, ErrorCode) $Include MyCommon.H ErrorCode = 0 * Lee los valores fuera de la matriz comn: For n = 1 To ComVar1 MyVar = ComVar2(n) * Realizar alguna accin... ... Next n Return

Funcin Compare
Compara dos series. Si el soporte multilingstico est habilitado, el resultado de esta funcin depende del valor de entorno local actual del convenio Collate.

Sintaxis
Compare (serie1, serie2 [ , justificacin ])

serie1 y serie2 son las series que se compararn. El valor de justificacin es L para una comparacin justificada a la izquierda o R para una comparacin justificada a la derecha. Si no especifica L o R, el valor predeterminado es L. Cualquier otro valor genera un aviso de tiempo de ejecucin, y se devuelve 0.

Comentarios
El resultado de la comparacin se devuelve como uno de los valores siguientes: serie1 es menor que serie2. 0 serie1 es igual que serie2 o la expresin de justificacin no es vlida. 1 serie1 es mayor que serie2. Utilice una comparacin justificada a la derecha para las series numricas; utilice una comparacin justificada a la izquierda para las series de texto. Tenga cuidado con las series mixtas. Por ejemplo, una comparacin justificada a la derecha de las series AB100 y AB99 indica que AB100 es mayor que AB99 ya que 100 es mayor que 99. No obstante, una comparacin justificada a la derecha de las series AC99 y AB100 indica que AC99 es mayor ya que C es mayor que B.

Ejemplo
En el ejemplo siguiente, las series AB99 y AB100 se comparan con la opcin de justificacin a la derecha, en la que "AB100" es mayor que "AB99":
On Compare("AB99", "AB100", "R") + 2 GoSub LessThan, EqualTo GreaterThan

184

Gua del desarrollador de Server Job

Funcin Convert
Sustituye todas las instancias de los caracteres especificados en una serie por los caracteres de sustitucin.

Sintaxis
Convert (lista, nueva.lista, serie)

lista es la lista de caracteres que se van a sustituir. Si la lista es un valor nulo, genera un error de tiempo de ejecucin. nueva.lista es la lista correspondiente de caracteres de sustitucin. Si nueva.lista es un valor nulo, genera un error de tiempo de ejecucin. La expresin serie se evala como la serie o un variable que contiene la serie. Si serie es un valor nulo, se devuelve el valor nulo.

Comentarios
Las dos listas de caracteres se corresponden. El primer carcter de nueva.lista sustituye a todas las instancias del primer carcter de la lista, el segundo sustituye al segundo, etc. Si las dos listas no contienen el mismo nmero de caracteres: v Los caracteres de lista que no tengan caracteres correspondientes en nueva.lista se suprimen del resultado. v Los caracteres excedentes de nueva.lista se ignoran.

Ejemplo
Este es un ejemplo de Convert utilizado como funcin:
MyString ="NOW IS THE TIME" ConvStr = Convert("TI", "XY", MyString) * todas T => X, I => Y * En este punto, ConvStr es: NOW YS XHE XYME ConvStr = Convert("XY", "Z", ConvStr) * todas X => Z, Y => "" * En este punto, ConvStr es: NOW S ZHE ZME

Sentencia Convert
Sustituye todas las instancias de los caracteres especificados en una serie por los caracteres de sustitucin. No est disponible en las expresiones.

Sintaxis
Convert lista To nueva.lista In serie

lista es la lista de caracteres que se van a sustituir. Si lista es un valor nulo, genera un error de tiempo de ejecucin. nueva.lista es la lista correspondiente de caracteres de sustitucin. Si nueva.lista es un valor nulo, genera un error de tiempo de ejecucin. La expresin serie se evala como la serie o un variable que contiene la serie. Si serie es un valor nulo, se devuelve el valor nulo.
Captulo 7. Programacin BASIC

185

Comentarios
Las dos listas de caracteres se corresponden. El primer carcter de nueva.lista sustituye a todas las instancias del primer carcter de la lista, el segundo sustituye al segundo, etc. Si las dos listas no contienen el mismo nmero de caracteres: v Los caracteres de lista que no tengan caracteres correspondientes en nueva.lista se suprimen del resultado. v Los caracteres excedentes de nueva.lista se ignoran.

Ejemplo
Este es un ejemplo de Convert utilizado como sentencia, que convierte la serie:
MyString ="NOW IS THE TIME" Convert "TI" To "XY" In MyString * todas T => X, I => Y * En este punto, MyString es: NOW YS XHE XYME Convert "XY" To "Z" In MyString * todas X => Z, Y => "" * En este punto, MyString es: NOW S ZHE ZME

Funcin Count
Cuanta el nmero de veces que una subserie aparece en una serie.

Sintaxis
Count (serie, subserie)

serie es la serie que desea buscar. Si serie es un valor nulo, se devuelve el valor nulo. subserie es la subserie que desea contar. Puede ser una serie de caracteres, una constante o una variable. Si la subserie no aparece en la serie, se devuelve 0. Si la subserie es una serie vaca, se devuelve el nmero de caracteres de la serie. Si la subserie es un valor nulo, se produce un error de tiempo de ejecucin.

Comentarios
Cuando se cuenta una subserie completa, Count pasa al siguiente carcter y vuelve a empezar. Por ejemplo, la sentencia siguiente cuenta slo dos instancias de la subserie tt y devuelve 2 a la variable c:
c = Count (tttt, tt)

Ejemplo
* La siguiente lnea devuelve el nmero de "A" * en la serie (3). MyCount = Count("ABCAGHDALL", "A") * La siguiente lnea devuelve 2 ya que las subseries solapadas * no se cuentan. MyCount = Count ("TTTT", "TT")

Funcin CRC32
Devuelve un valor de comprobacin de redundancia cclica de 32 bits para una serie.

Sintaxis
CRC32 (serie)

186

Gua del desarrollador de Server Job

serie es la serie a la que desea aadir el valor de CRC. Si serie es un valor nulo, se devuelve el valor nulo.

Ejemplo
En este ejemplo, se utiliza la funcin CRC para devolver un nmero que es un cdigo de redundancia cclica para la serie especificada:
MyString = "This is any arbitrary string value" CheckValue = CRC32(MyString) ;* devuelve 36235

Funcin de fecha
Devuelve una fecha con su formato de sistema interno.

Sintaxis
Date ( )

Comentarios
IBM InfoSphere DataStage almacena las fechas como el nmero de das antes o despus del da 0, utilizando el 31 de diciembre de 1967 como da 0. Por ejemplo: Esta fecha... Se almacena como... 10 de diciembre de 1967 -21 15 de noviembre de 1967 -46 31 de diciembre de 1967 0 15 de febrero de 1968 46 1 de enero de 1985 6575 Utilice la fecha interna siempre que necesite realizar conversiones de salida.

Ejemplo
Este ejemplo muestra cmo convertir la fecha actual en formato interno en una serie que represente el da siguiente:
Tomorrow = Oconv(Date() + 1, "D4/YMD") ;* "1997/5/24"

Funcin DCount
Cuenta los campos delimitados de una serie.

Sintaxis
DCount (serie, delimitador)

serie es la serie que en la que se realiza la bsqueda. Si la serie es una serie vaca, se devuelve 0. Si la serie es un valor nulo, se devuelve el valor nulo.
Captulo 7. Programacin BASIC

187

delimitador es uno o varios caracteres que delimitan los campos que se van a contar. Si el delimitador es una serie vaca, se devuelve el nmero de caracteres de la serie + 1. Si el delimitador es un valor nulo, se produce un error de tiempo de ejecucin. Dos delimitadores consecutivos en la serie se cuentan como un campo.

Comentarios
DCount se diferencia de Count en que devuelve el nmero de valores separados por delimitadores en lugar del nmero de apariciones de una serie de caracteres.

Ejemplo
* La siguiente lnea devuelve el nmero de subseries * delimitadas por "A" en la serie (4) MyCount = DCount("ABCAGHDALL", "A") * La siguiente lnea devuelve 3 ya que las subseries solapadas * no se cuentan. MyCount = DCount ("TTTT", "TT")

Sentencia Deffun
Define una funcin escrita por el usuario.

Sintaxis
Deffun funcin [ ( [Mat] argumento [, [Mat] argumento ...] ) ] [Calling nombre.llamada]

funcin es el nombre de la funcin que se va a definir. argumento es un argumento que se pasa a la funcin. Puede proporcionar hasta 254 argumentos. Para pasar una matriz, especifique Mat antes del nombre de matriz. Calling nombre.llamada especifica el nombre que se utiliza para llamar a la funcin. Si no especifica ningn nombre, la funcin se invoca utilizando function.

Comentarios
Debe declarar una funcin escrita por el usuario antes de poder utilizarla en un programa. Puede definir una funcin escrita por el usuario una sola vez en un programa. La definicin de la funcin dos veces genera un error muy grave.

Ejemplo
Este ejemplo muestra cmo definir una funcin de transformacin denominada MyFunctionB, para que se pueda invocar desde otra funcin de transformacin denominada MyFunctionA:
Function MyFunctionA(Arg1) * Cuando hace referencia a una funcin escrita por el usuario que se mantiene en el * repositorio de DataStage, debe declararla como una funcin con el * nmero correcto de argumentos y aadirle un prefijo "DSU.". Deffun MyFunctionB(A) Calling "DSU.MyFunctionB"

Sentencia Dimension
Define las dimensiones de una o varias matrices. No est disponible en las expresiones.

188

Gua del desarrollador de Server Job

Sintaxis
Dimension matriz (filas, columnas) [ , matriz (filas, columnas) ] ... Dimension vector (mx) [ , vector (mx) ] ...

matriz es una matriz bidimensional que se va a dimensionar. filas es el nmero mximo de filas en la matriz. columnas es el nmero mximo de columnas en la matriz. vector es una matriz unidimensional que se va a dimensionar. mx es el nmero mximo de elementos en la matriz.

Comentarios
Las matrices se pueden volver a dimensionar en el tiempo de ejecucin. Puede cambiar una matriz de unidimensional a bidimensional y viceversa. El hecho de volver a dimensionar una matriz afecta a los valores de los elementos de matriz tal como se indica a continuacin: v Los elementos comunes con la misma direccin fila/columna en ambas matrices se conservan. v Los nuevos elementos que no tenan ninguna direccin fila/columna en la matriz original se inicializan como no asignados. v Los elementos redundantes a los que ya no se puede hacer referencia en la nueva matriz se pierden, y el espacio de memoria se devuelve al sistema operativo. Si no hay suficiente memoria para la matriz, la sentencia Dimension falla y la siguiente funcin InMat devuelve 1. Para asignar valores a los elementos de la matriz, utilice la sentencia Mat y las sentencias de asignacin.

Ejemplo
Este ejemplo muestra cmo puede dimensionarse una matriz dinmicamente en el tiempo de ejecucin basndose en los valores de los argumentos entrantes:
Subroutine MyRoutine(InputArg, ErrorCode) ErrorCode = 0 * InputArg son 2 campos separados por comas, que se corresponden con las dimensiones Rows = Field(InputArg, ",", 1) Cols = Field(InputArg ",", 2) Dimension MyMatrix(Rows, Cols) If InMat = 1 Then * No se ha podido obtener el espacio para la matriz; sale con estado de error. Call DSLogWarn("Could not dimension matrix","MyRoutine") ErrorCode = -1 Else * Contine. ... End

Funcin Div
Divide un nmero por otro.
Captulo 7. Programacin BASIC

189

Sintaxis
Div (dividendo, divisor)

dividendo es el nmero que se va a dividir. Si dividendo es un valor nulo, se devuelve el valor nulo. divisor es el nmero por el que se divide. divisor no puede ser 0. Si divisor es un valor nulo, se devuelve el valor nulo.

Comentarios
Utilice la funcin Mod para determinar el resto.

Ejemplos
Los siguientes ejemplos muestran el uso de la funcin Div:
Quotient = Div(100, 25) ;* el resultado es 4 Quotient = Div(100, 30)

;* el resultado es 3

Funcin DownCase
Convierte las letras maysculas de una serie a minsculas. Si el soporte multilingstico est habilitado, el resultado de esta funcin depende del valor de entorno local actual del convenio Ctype.

Sintaxis
DownCase (serie)

serie es la serie o expresin que desea cambiar a minsculas. Si serie es un valor nulo, se devuelve el valor nulo.

Ejemplo
Este es un ejemplo de la funcin DownCase:
MixedCase = "ABC123abc" LowerCase = DownCase(MyString) ;* el resultado es "abc123abc"

Funcin DQuote
Delimita una serie mediante comillas dobles.

Sintaxis
DQuote (serie)

serie es la serie que se escribir entre comillas. Si serie es un valor nulo, se devuelve el valor nulo.

Comentarios
Para especificar una serie entre comillas simples, utilice la funcin SQuote.

190

Gua del desarrollador de Server Job

Ejemplo
Este es un ejemplo de la funcin DQuote que aade comillas dobles (") al principio y al final de una serie:
ProductNo = 12345 QuotedStr = DQuote(ProductNo : "A") * el resultado es "12345A"

DSAttachJob
Se conecta a un trabajo a fin de ejecutarlo en una secuencia de control de trabajos. Se devuelve un descriptor de contexto que se utiliza para direccionar el trabajo. Slo puede haber un descriptor de contexto abierto para un trabajo determinado en cualquier momento dado.

Sintaxis
DescriptorContextoTrabajo = DSAttachJob (NombreTrabajo, ModalidadError)

DescriptorContextoTrabajo es el nombre de una variable para mantener el valor de retorno que utiliza posteriormente cualquier otra funcin o rutina al hacer referencia al trabajo. No presuponga que este valor es un entero. NombreTrabajo es una serie que proporciona el nombre del trabajo al que se conectar. ModalidadError es un valor que especifica cmo otras rutinas que utilizan el descriptor de contexto deben notificar errores. Es una de las siguientes: v DSJ.ERRFATAL Registra un mensaje muy grave y termina anormalmente el trabajo de control (valor predeterminado). v DSJ.ERRWARNING Registra un mensaje de aviso pero contina. v DSJ.ERRNONE No registra ningn mensaje - el emisor de la llamada tiene toda la responsabilidad (sin embargo, se registrar anomala del propio DSAttachJob).

Comentarios
Un trabajo no se puede conectar a s mismo. El parmetro NombreTrabajo puede especificar una versin exacta del trabajo en forma de trabajo%Reln.n.n o la versin ms reciente del trabajo con el formato trabajo. Si se libera el propio trabajo de control, obtendr la versin liberada ms reciente del trabajo. Si el trabajo de control es una versin de desarrollo, obtendr la versin de desarrollo ms reciente de trabajo.

Ejemplo
A continuacin se muestra un ejemplo de conexin al Release 11 del trabajo Qsales:
Qsales_handle = DSAttachJob ("Qsales%Rel1", DSJ.ERRWARN)

DSCheckRoutine
Comprueba si est catalogada una rutina de BASIC, en el VOC como elemento invocable o en el espacio de catlogo.

Captulo 7. Programacin BASIC

191

Sintaxis
Encontrado = DSCheckRoutine(NombreRutina)

NombreRutina es el nombre de la rutina de BASIC que se comprobar. Encontrado es un booleano. @False if NombreRutina not findable, else @True.

Ejemplo
rtn$ok = DSCheckRoutine("DSU.DSSendMail") If(NOT(rtn$ok)) Then * aqu manejo de errores End.

DSDetachJob
Devuelve un DescriptorContextoTrabajo adquirido por DSAttachJob si no es necesario ningn control adicional de un trabajo (permitiendo que otro trabajo se convierta en su controlador). No es necesario llamar a esta funcin; de lo contrario, los trabajos conectados se desconectarn automticamente cuando finalice el trabajo de control.

Sintaxis
CdigoError = DSDetachJob (DescriptorContextoTrabajo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. CdigoError es 0 si DSStopJob es satisfactorio; de lo contrario puede ser uno de los siguientes: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. El nico error posible es un intento de cerrar DSJ.ME. De lo contrario, la llamada siempre es satisfactoria.

Ejemplo
El mandato siguiente desconecta el descriptor de contexto del trabajo qsales:
Deterr = DSDetachJob (qsales_handle)

DSExecute
Ejecuta un mandato del motor, de DOS o de UNIX desde una subrutina anterior/posterior.

Sintaxis
Call DSExecute (TipoShell, Mandato, Salida, CdigoRetornoSistema)

TipoShell (entrada) especifica el tipo de mandato que desea ejecutar y es NT, UNIX o UV (para motor). Mandato (entrada) es el mandato que se ejecutar. Mandato no debe solicitar entrada cuando se ejecute. Salida (salida) es cualquier salida del mandato. Cada lnea de salida aparece separada por una marca de campo, @FM. La salida se aade al archivo de registro de trabajo como un mensaje informativo. CdigoRetornoSistema (salida) es el cdigo que indica el resultado satisfactorio del mandato. Un valor de 0 significa que el mandato se ha ejecutado satisfactoriamente. Un valor de 1 (para un mandato de DOS o UNIX) indica que el mandato no se ha encontrado. Cualquier otro valor es un cdigo de salida especfico del mandato.

192

Gua del desarrollador de Server Job

Comentarios
No utilice DSExecute desde una transformacin; la sobrecarga de ejecutar un mandato para cada fila procesada por una etapa degradar el rendimiento del trabajo.

DSGetCustInfo
Obtiene informacin notificada al final de la ejecucin de determinadas etapas paralelas. La informacin recopilada, y disponible para su interrogacin, se especifica durante el tiempo de diseo. Por ejemplo, la informacin de la etapa Transformer se especifica en el separador Desencadenantes del recuadro de dilogo Propiedades de la etapa Transformer.

Sintaxis
Resultado = DSGetCustInfo (DescriptorContextoTrabajo, NombreEtapa, NombreInfoPers, TipoInfo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob o puede ser DSJ.ME para hacer referencia al trabajo actual. NombreEtapa es el nombre de la etapa que se interrogar. Tambin puede ser DSJ.ME para hacer referencia a la etapa actual, si es necesario. NombreInfoPers es el nombre de la variable que se interrogar. TipoInfo especifica la informacin necesaria y puede ser una de las opciones siguientes: DSJ.CUSTINFOVALUE DSJ.CUSTINFODESC Resultado depende del TipoInfo especificado, de la forma siguiente: v DSJ.CUSTINFOVALUE Serie: valor del elemento de informacin de personalizacin especificado. v DSJ.CUSTINFODESC Serie: descripcin del elemento de informacin de personalizacin especificado. Resultado puede devolver tambin una condicin de error de la forma siguiente: v DSJE.BADHANDLE DescriptorContextoTrabajo no era vlido. v DSJE.BADTYPE TipoInfo no se ha reconocido. v DSJE.NOTINSTAGE NombreEtapa era DSJ.ME y el emisor de la llamada no se est ejecutando dentro de una etapa. v DSJE.BADSTAGE NombreEtapa no hace referencia a una etapa conocida en el trabajo. v DSJE.BADCUSTINFO NombreInfoPers no hace referencia a un elemento de informacin de personalizacin conocido.

DSGetJobInfo
Proporciona un mtodo de obtencin de informacin sobre un trabajo, que se puede utilizar de forma general as como para control de trabajos. Puede hacer referencia al trabajo actual o a un trabajo controlado, dependiendo del valor de DescriptorContextoTrabajo.

Sintaxis
Resultado = DSGetJobInfo (DescriptorContextoTrabajo, TipoInfo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob o puede ser DSJ.ME para hacer referencia al trabajo actual.
Captulo 7. Programacin BASIC

193

TipoInfo especifica la informacin necesaria y puede ser una de las opciones siguientes: DSJ.JOBSTATUS DSJ.JOBNAME DSJ.JOBCONTROLLER DSJ.JOBSTARTTIMESTAMP DSJ.JOBWAVENO DSJ.PARAMLIST DSJ.STAGELIST DSJ.USERSTATUS DSJ.JOBCONTROL DSJ.JOBPID DSJ.JPBLASTTIMESTAMP DSJ.JOBINVOCATIONS DSJ.JOBINTERIMSTATUS DSJ.JOBINVOCATIONID DSJ.JOBDESC DSJ.JOBFULLDESC DSJ.STAGELIST2 DSJ.JOBELAPSED DSJ.JOBEOTCOUNT DSJ.JOBEOTTIMESTAMP DSJ.JOBRTISERVICE DSJ.JOBMULTIINVOKABLE DSJ.JOBFULLSTAGELIST Resultado depende del TipoInfo especificado, de la forma siguiente: v DSJ.JOBSTATUS Entero. Estado actual de trabajo global. Los estados posibles que se pueden devolver se dividen actualmente en dos categoras: En primer lugar, un trabajo en curso se identifica mediante: DSJS.RESET El trabajo ha finalizado una ejecucin de restablecimiento. DSJS.RUNFAILED El trabajo ha finalizado una ejecucin normal con un error muy grave.

194

Gua del desarrollador de Server Job

DSJS.RUNNING Ejecucin de trabajo - es el nico estado que indica que el trabajo est realmente en ejecucin. En segundo lugar, es posible que los trabajos que no estn en ejecucin tengan los estados siguientes: DSJS.RUNOK El trabajo ha finalizado una ejecucin normal sin avisos. DSJS.RUNWARN El trabajo ha finalizado una ejecucin normal con avisos. DSJS.STOPPED El trabajo ha sido detenido por la intervencin del operador (no se puede determinar el tipo de ejecucin). DSJS.VALFAILED El trabajo no ha podido realizar una ejecucin de validacin. DSJS.VALOK - El trabajo ha finalizado una ejecucin de validacin sin avisos. DSJS.VALWARN El trabajo ha finalizado una ejecucin de validacin con avisos. v DSJ.JOBNAME Serie. Nombre real del trabajo al que hace referencia el descriptor de contexto del trabajo. v DSJ.JOBCONTROLLER Serie. Nombre del trabajo que controla el trabajo al que hace referencia el descriptor de contexto del trabajo. Tenga en cuenta que puede tratarse de varios nombres de trabajo separados por puntos si el trabajo est controlado por un trabajo que est a su vez controlado. v DSJ.JOBSTARTTIMESTAMP Serie. Fecha y hora cuando se inici el trabajo en el motor con el formato AAAA-MM-DD hh:nn:ss. v v v v DSJ.JOBWAVENO Entero. Nmero de ondas de ejecucin ltima o actual. DSJ.PARAMLIST. Devuelve una lista de nombres de parmetros separados por coma. DSJ.STAGELIST. Devuelve una lista de nombres de etapas activas separados por coma. DSJ.USERSTATUS Serie. Lo que ha registrado la ltima llamada del trabajo de DSSetUserStatus, de lo contrario una serie vaca.

v DSJ.JOBCONTROL Entero. Estado de control del trabajo actual, es decir, si se ha emitido una solicitud de detencin para el trabajo. v DSJ. JOBPID Entero. ID de proceso de trabajo. v DSJ.JOBLASTTIMESTAMP Serie. Fecha y hora cuando el trabajo finaliz por ltima vez una ejecucin en el motor con el formato AAAA-MM-DD HH:NN:SS. v DSJ.JOBINVOCATIONS. Devuelve una lista de ID de invocacin separados por coma. v DSJ.JOBINTERIMSTATUS. Devuelve el estado de un trabajo despus de que haya ejecutado todas las etapas y trabajos controlados, pero antes de haber intentado ejecutar una subrutina posterior al trabajo. (Est diseado para ser utilizado por una subrutina posterior al trabajo para obtener el estado del trabajo actual). v DSJ.JOBINVOCATIONID. Devuelve el ID de invocacin del trabajo especificado (utilizado en la macro DSJobInvocationId en un diseo de trabajo para acceder al ID de invocacin mediante el cual se invoca el trabajo). v DSJ.STAGELIST2. Devuelve una lista de nombres de etapas pasivas separadas por coma. v DSJ.JOBELAPSED Serie. El tiempo transcurrido del trabajo en segundos. v DSJ.JOBDESC Serie. La descripcin del trabajo especificada en el recuadro de dilogo Propiedades del trabajo. v DSJ.JOBFULLDESSC Serie. La descripcin completa especificada en el recuadro de dilogo Propiedades del trabajo. v DSJ.JOBRTISERVICE entero. Se establece en true (verdadero) si se trata de un trabajo de servicio web. v DSJ.JOBMULTIINVOKABLE entero. Se establece en true (verdadero) si este trabajo da soporte a varias invocaciones v DSJ.JOBEOTCOUNT entero. Recuento de bloques EndOfTransmission procesados por este trabajo hasta ahora. v DSJ.JOBEOTTIMESTAMP indicacin_fecha_y_hora. Fecha/Hora del ltimo bloque EndOfTransmission procesado por este trabajo. v DSJ.FULLSTAGELIST. Devuelve una lista de todos los nombres de etapas separados por coma.
Captulo 7. Programacin BASIC

195

Resultado tambin puede devolver condiciones de error de la forma siguiente: DSJE.BADHANDLE DescriptorContextoTrabajo no era vlido. DSJE.BADTYPE TipoInfo no se ha reconocido.

Comentarios
Cuando se hace referencia a un trabajo controlado, se puede utilizar DSGetJobInfo antes o despus de haber emitido un DSRunJob. Cualquier estado devuelto despus de una llamada satisfactoria a DSRunJob es una garanta de que est relacionado con esa ejecucin del trabajo.

Ejemplos
El mandato siguiente solicita el estado de trabajo del trabajo qsales:
q_status = DSGetJobInfo(qsales_handle, DSJ.JOBSTATUS)

El mandato siguiente solicita el nombre real del trabajo actual:


whatname = DSGetJobInfo (DSJ.ME, DSJ.JOBNAME)

DSGetJobMetaBag
Devuelve una matriz dinmica que contiene las propiedades de MetaBag asociadas con el trabajo nombrado.

Sintaxis
Resultado = DSGetJobMetaBag(NombreTrabajo, Propietario) o Call DSGetJobMetaBag(Resultado, NombreTrabajo, Propietario)

NombreTrabajo es el nombre del trabajo del proyecto actual para el que es necesaria la informacin. Si NombreTrabajo no existe en el proyecto actual, Resultado se establecer en una serie vaca. Propietario es un nombre de propietario cuyas propiedades de metabag se devolvern. Si Propietario no es un propietario vlido dentro del trabajo actual, Resultado se establecer en una serie vaca. Si Propietario es una serie vaca, se devolver una serie delimitada por marcas de campo de propietarios de propiedades de metabag dentro del trabajo actual en Resultado. Resultado devuelve una matriz dinmica de conjuntos de propiedades de metabag, de la forma siguiente: RESULTADO<1> = NombreMetaPropiedad01 @VM ValorMetaPropiedad01 RESULTADO<..> = NombreMetaPropiedad.. @VM ValorMetaPropiedad.. RESULTADO<N>= NombreMetaPropiedadN @VM ValorMetaPropiedadN

Ejemplo
Lo siguiente devuelve las propiedades de metabag para el propietario propietariomb en el trabajo "trabajoprueba":
linksmdata = DSGetJobMetaBag (trabajoprueba, propietariomb)

196

Gua del desarrollador de Server Job

DSGetLinkInfo
Proporciona un mtodo de obtencin de informacin sobre un enlace en una etapa activa, que se puede utilizar de forma general as como para control de trabajos. Esta rutina puede hacer referencia a un trabajo controlado o a un trabajo actual, en funcin del valor de DescriptorContextoTrabajo.

Sintaxis
Resultado = DSGetLinkInfo (DescriptorContextoTrabajo, NombreEtapa, NombreEnlace, TipoInfo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob o puede ser DSJ.ME para hacer referencia al trabajo actual. NombreEtapa es el nombre de la etapa activa que se interrogar. Tambin puede ser DSJ.ME para hacer referencia a la etapa actual, si es necesario. NombreEnlace es el nombre de un enlace (entrada o salida) conectado a la etapa. Tambin puede ser DSJ.ME para hacer referencia al enlace actual (por ejemplo, cuando se utiliza en una expresin de Transformer o funcin de transformacin denominada desde cdigo de enlace). TipoInfo especifica la informacin necesaria y puede ser una de las opciones siguientes: DSJ.LINKLASTERR DSJ.LINKNAME DSJ.LINKROWCOUNT DSJ.LINKSQLSTATE DSJ.LINKDBMSCODE DSJ.LINKDESC DSJ.LINKSTAGE DSJ.INSTROWCOUNT DSJ.LINKEOTROWCOUNT Resultado depende del TipoInfo especificado, de la forma siguiente: v DSJ.LINKLASTERR Serie: ltimo mensaje de error (si hay alguno) notificado desde el enlace en cuestin. v DSJ.LINKNAME Serie: devuelve el nombre del enlace, resulta especialmente til cuando se utiliza con DescriptorContextoTrabajo = DSJ.ME y NombreEtapa = DSJ.ME y NombreEnlace = DSJ.ME para descubrir su propio nombre. v DSJ.LINKROWCOUNT Entero: nmero de filas que han pasado un enlace hasta ahora. v DSJ.LINKSQLSTATE: el estado de SQL para el ltimo error que se produce en este enlace. v DSJ.LINKDBMSCODE: el cdigo de DBMS para el ltimo error que se produce en este enlace. v DSJ.LINKDESC: descripcin del enlace. v DSJ.LINKSTAGE: nombre de la etapa en el otro extremo del enlace. v DSJ.INSTROWCOUNT: lista de recuentos de fila, separados por coma, uno por instancia (trabajos paralelos) v DSJ.LINKEOTROWCOUNT: recuento de filas desde el ltimo bloque EndOfTransmission.
Captulo 7. Programacin BASIC

197

Resultado tambin puede devolver condiciones de error de la forma siguiente: v DSJE.BADHANDLE DescriptorContextoTrabajo no era vlido. v DSJE.BADTYPE TipoInfo no se ha reconocido. v DSJE.BADSTAGE NombreEtapa no hace referencia a una etapa conocida en el trabajo. v DSJE.NOTINSTAGE NombreEtapa era DSJ.ME y el emisor de la llamada no se est ejecutando dentro de una etapa. v DSJE.BADLINK NombreEnlace no hace referencia a un enlace conocido para la etapa en cuestin.

Comentarios
Cuando se hace referencia a un trabajo controlado, se puede utilizar DSGetLinkInfo antes o despus de haber emitido un DSRunJob. Cualquier estado devuelto despus de una llamada satisfactoria a DSRunJob es una garanta de que est relacionado con esa ejecucin del trabajo.

Ejemplo
El mandato siguiente solicita el nmero de filas que se han pasado al enlace order_feed en la etapa de cargador del trabajo qsales:
link_status = DSGetLinkInfo(qsales_handle, "cargador", "order_feed", DSJ.LINKROWCOUNT)

DSGetLinkMetaData
Devuelve una matriz dinmica que contiene los metadatos de columna del enlace especificado.

Sintaxis
Resultado = DSGetLinkMetaData(Nombretrabajo, NombreEtapa, NombreEnlace) o Call DSGetLinkMetaData(Resultado, NombreTrabajo, NombreEtapa, NombreEnlace)

NombreTrabajo es el nombre del trabajo del proyecto actual para el que es necesaria la informacin. Si NombreTrabajo no existe en el proyecto actual, la funcin devolver una serie vaca. NombreEtapa es el nombre de la etapa en el trabajo especificado que contiene el enlace para el cual es necesaria la informacin. Si NombreEtapa no existe en el trabajo especificado, la funcin devolver una serie vaca. NombreEnlace es el nombre del enlace en el trabajo especificado para el cual es necesaria la informacin. Si NombreEnlace no existe en el trabajo especificado, la funcin devolver una serie vaca. Resultado devuelve una matriz dinmica de nueve campos, donde cada uno de ellos contendr N valores donde N es el nmero de columnas en el enlace. Resultado<1,1...N> es el nombre de columna Resultado<2,1...N> es 1 para columnas de clave primaria; de lo contrario, es 0 Resultado<3,1...N> es el tipo de SQL de columna. Consulte ODBC.H. Resultado<4,1...N> es la precisin de columna Resultado<5,1...N> es la escala de columna Resultado<6,1...N> es la anchura de visualizacin de columna

198

Gua del desarrollador de Server Job

Resultado<7,1...N> es 1 para columnas con posibilidad de nulos; de lo contrario, es 0 Resultado<8,1...N> es la descripcin de columna Resultado<9,1...N> es la derivacin de columna

Ejemplo
Lo siguiente devuelve los metadatos del enlace enlacei1 en la etapa etapasec del trabajo trabajoprueba:
linksmdata = DSGetLinkMetaData (trabajoprueba, etapasec, enlacei1)

DSGetLogEntry
Lee todos los detalles del suceso proporcionados en IDsuceso.

Sintaxis
DetalleSuceso = DSGetLogEntry (DescriptorContextoTrabajo, IDsuceso)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. IDsuceso es un entero que identifica el suceso de registro especfico para el que son necesarios los detalles. Se obtiene utilizando la funcin DSGetNewestLogId. DetalleSuceso es una serie que contiene subseries separadas por \. Las subseries tienen la forma siguiente: Subserie1 Indicacin de fecha y hora en formato AAAA-MM-DD HH:NN:SS Subserie2 Informacin de usuario Subserie3 Tipo de suceso - consulte DSGetNewestLogId Subserie4 - n Mensaje de suceso Si se produce un error, el error se notifica mediante uno de los siguientes cdigos de resultado de entero negativo: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. v DSJE.BADVALUE Error al acceder a IDsuceso.

Ejemplo
Los mandatos siguientes en primer lugar obtienen el IDsuceso para el suceso de registro necesario y a continuacin leen todos los detalles del suceso del suceso de registro identificado por LatestLogid en la serie LatestEventString:
latestlogid = DSGetNewestLogId(qsales_handle,DSJ.LOGANY) LatestEventString = DSGetLogEntry(qsales_handle,latestlogid)

DSGetLogEventIds
Devuelve una lista de ID de suceso de registro para una ejecucin determinada de una invocacin de trabajo.

Captulo 7. Programacin BASIC

199

Sintaxis
ListaID = DSGetLogEventIds (DescriptorContextoTrabajo, NmeroEjecucin, FiltroTipoSuceso)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. NmeroEjecucin identifica la ejecucin de invocacin de trabajo para la que se devuelven los ID de suceso. Normalmente un valor de cero solicita los ID para la ejecucin ms reciente de la invocacin de trabajo. Para recuperar detalles para ejecuciones anteriores, proporcione valores negativos, como por ejemplo -1 para obtener detalles sobre la ejecucin anterior a la ms reciente, -2 para obtener detalles sobre la ejecucin anterior a esa, y as sucesivamente. En los casos dnde conozca los nmeros explcitos de ejecucin, puede recuperar detalles proporcionando el nmero de ejecucin como un valor positivo. FiltroTipoSuceso restringe los tipos de entrada de registro de suceso para los que se devuelven los ID. De forma predeterminada se devuelven los ID para todas las entradas de registro. Incluya caracteres en la serie del filtro para restringir las entradas de la forma siguiente: I W F S B R J Informativo Aviso Muy grave Sucesos de inicio o finalizacin Sucesos de proceso por lotes o control Sucesos de depuracin o restablecimiento Sucesos de rechazo

ListaID se devuelve como una lista de enteros positivos que identifican los sucesos de registro necesarios. En caso de un error, ListaID tambin se puede devolver como un entero negativo, en cuyo caso contiene uno de estos cdigos de error: DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. DSJE.BADTYPE FiltroTipoSuceso no vlido. DSJE.BADVALUE NmeroEjecucin no vlido.

Comentarios
Para utilizar este mtodo, es necesario que el programa haya adquirido anteriormente un descriptor de contexto de trabajo llamando a DSAttachJob. El nmero de ejecucin para una invocacin de trabajo se restablece cuando se compila el trabajo; por lo tanto, no es posible utilizar este mtodo para recuperar ID de suceso de trabajo para ejecuciones que se han producido antes de la compilacin ms reciente del trabajo.

DSGetLogSummary
Devuelve una lista de detalles cortos de suceso de registro. Los detalles que se devuelven se determinan mediante el establecimiento de algunos filtros. (Se debe tener cuidado al establecer los filtros; de lo contrario, se puede devolver una gran cantidad de informacin.)

200

Gua del desarrollador de Server Job

Sintaxis
MatrizResumen = DSGetLogSummary (DescriptorContextoTrabajo, TipoSuceso, HoraInicio, HoraFinalizacin, NmeroMx)

DescriptorContextotrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. TipoSuceso es el tipo de suceso registrado y es uno de los siguientes: v v v v v v v DSJ.LOGINFO Mensaje de informacin DSJ.LOGWARNING Mensaje de aviso DSJ.LOGFATAL Error muy grave DSJ.LOGREJECT El enlace de rechazo estaba activo DSJ.LOGSTARTED Se ha iniciado el trabajo DSJ.LOGRESET Se ha restablecido el registro DSJ.LOGANY Cualquier categora (el valor predeterminado)

HoraInicio es una serie con el formato AAAA-MM-DD HH:NN:SS o AAAA-MM-DD. HoraFinalizacin es una serie con el formato AAAA-MM-DD HH:NN:SS o AAAA-MM-DD. NmeroMx es un entero que restringe el nmero de sucesos a devolver. 0 significa ninguna restriccin. Utilice este valor con precaucin. MatrizResumen es una matriz dinmica de campos separados por @FM. Cada campo consta de un conjunto de subseries separadas por \, donde cada campo representa un suceso separado, con las subseries con el formato siguiente: Subserie1 IDsuceso como por DSGetLogEntry Subserie2 Indicacin de fecha y hora con el formato AAAA-MM-DD HH:NN:SS Subserie3 TipoSuceso - consulte DSGetNewestLogId Subserie4 - n Mensaje de suceso Si se produce un error, el error se notifica mediante uno de los siguientes cdigos de resultado de entero negativo: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. v DSJE.BADTYPE TipoSuceso no vlido. v DSJE.BADTIME HoraInicio u HoraFinalizacin no vlido. v DSJE.BADVALUE NmeroMx no vlido.

Ejemplo
El mandato siguiente produce una matriz de sucesos activos de enlace de rechazo registrados para el trabajo qsales entre el 18 de agosto de 1998 y el 18 de septiembre de 1998, hasta un mximo de MAXREJ entradas:
RejEntries = DSGetLogSummary (qsales_handle, DSJ.LOGREJECT, "1998-08-18 00:00:00", "1998-09-18 00:00:00", MAXREJ)

DSGetNewestLogId
Obtiene el ID del suceso de registro ms reciente en una categora determinada o en cualquier categora.
Captulo 7. Programacin BASIC

201

Sintaxis
IDsuceso = DSGetNewestLogId (DescriptorContextoTrabajo, TipoSuceso)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. TipoSuceso es el tipo de suceso registrado y es uno de los siguientes: v v v v v v v DSJ.LOGINFO Mensaje de informacin DSJ.LOGWARNING Mensaje de aviso DSJ.LOGFATAL Error muy grave DSJ.LOGREJECT El enlace de rechazo estaba activo DSJ.LOGSTARTED Se ha iniciado el trabajo DSJ.LOGRESET Se ha restablecido el registro DSJ.LOGANY Cualquier categora (el valor predeterminado)

IDsuceso es un entero positivo que identifica el suceso de registro especfico. En caso de un error, IDsuceso tambin se puede devolver como un entero negativo, en cuyo caso contiene un cdigo de error como el siguiente: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. v DSJE.BADTYPE TipoSuceso no vlido.

Ejemplo
El mandato siguiente obtiene un ID para el mensaje de aviso ms reciente en el registro para el trabajo qsales:
IDAviso = DSGetNewestLogId (qsales_handle, DSJ.LOGWARNING)

DSGetParamInfo
Proporciona un mtodo de obtener informacin sobre un parmetro, que se puede utilizar de forma general as como para control de trabajo. Esta rutina puede hacer referencia a un trabajo controlado o al trabajo actual, en funcin del valor de DescriptorContextoTrabajo.

Sintaxis
Resultado = DSGetParamInfo (DescriptorContextoTrabajo, NombreParm, TipoInfo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob o puede ser DSJ.ME para hacer referencia al trabajo actual. NombreParm es el nombre del parmetro que se interrogar. TipoInfo especifica la informacin necesaria y puede ser uno de los valores siguientes: DSJ.PARAMDEFAULT DSJ.PARAMHELPTEXT DSJ.PARAMPROMPT DSJ.PARAMTYPE DSJ.PARAMVALUE

202

Gua del desarrollador de Server Job

DSJ.PARAMDES.DEFAULT DSJ.PARAMLISTVALUES DSJ.PARAMDES.LISTVALUES DSJ.PARAMPROMPT.AT.RUN Resultado depende del TipoInfo especificado, de la forma siguiente: v DSJ.PARAMDEFAULT Serie: valor predeterminado actual para el parmetro en cuestin. Consulte tambin DSJ.PARAMDES.DEFAULT. v DSJ.PARAMHELPTEXT Serie: texto de ayuda (si existe) para el parmetro en cuestin. v DSJ.PARAMPROMPT Serie: solicitud (si existe) para el parmetro en cuestin. v DSJ.PARAMTYPE Entero: describe el tipo de prueba de validacin que se debe realizar en cualquier valor que se establezca para este parmetro. Es uno de los siguientes: DSJ.PARAMTYPE.STRING DSJ.PARAMTYPE.ENCRYPTED DSJ.PARAMTYPE.INTEGER DSJ.PARAMTYPE.FLOAT (el parmetro puede contener puntos y E) DSJ.PARAMTYPE.PATHNAME DSJ.PARAMTYPE.LIST (debe ser un conjunto de series separadas por tabulador) DSJ.PARAMTYPE.DATE (debe ser una serie con el formato AAAA-MM-DD) DSJ.PARAMTYPE.TIME (debe ser una serie con el formato HH:MM) v DSJ.PARAMVALUE Serie: valor actual del parmetro para el trabajo en ejecucin o la ltima ejecucin de trabajo si el trabajo ha finalizado. v DSJ.PARAMDES.DEFAULT Serie: valor predeterminado original del parmetro - puede ser distinto de DSJ.PARAMDEFAULT si este ltimo ha sido cambiado por un administrador desde que se instal el trabajo. v DSJ.PARAMLISTVALUES Serie: lista separada por tabuladores de valores permitidos para el parmetro. Consulte tambin DSJ.PARAMDES.LISTVALUES. v DSJ.PARAMDES.LISTVALUES Serie: lista original separada por tabuladores de valores permitidos para el parmetro - puede ser diferente de DSJ.PARAMLISTVALUES si este ltimo ha sido cambiado por el administrador desde que se instal el trabajo. v DSJ.PROMPT.AT.RUN Serie: 1 significa que se solicitar el parmetro cuando se ejecute el trabajo; cualquier otro valor significa que no se solicitar (DSJ.PARAMDEFAULT Serie que se utilizar directamente). Resultado tambin puede devolver condiciones de error de la forma siguiente: v DSJE.BADHANDLE DescriptorContextoTrabajo no era vlido. v DSJE.BADPARAM NombreParm no es un nombre de parmetro en el trabajo. v DSJE.BADTYPE TipoInfo no se ha reconocido.

Comentarios
Cuando se hace referencia a un trabajo controlado, DSGetParamInfo se puede utilizar antes o despus de haber emitido un DSRunJob. Cualquier estado devuelto despus de una llamada satisfactoria a DSRunJob es una garanta de que est relacionado con esa ejecucin del trabajo.

Ejemplo
El mandato siguiente solicita el valor predeterminado del parmetro de trimestre para el trabajo qsales:
Captulo 7. Programacin BASIC

203

Qs_quarter = DSGetparamInfo(qsales_handle, "trimestre", DSJ.PARAMDEFAULT)

DSGetProjectInfo
Proporciona un mtodo de obtencin de informacin sobre el proyecto actual.

Sintaxis
Resultado = DSGetProjectInfo (TipoInfo)

TipoInfo especifica la informacin necesaria y puede ser una de las opciones siguientes: DSJ.JOBLIST DSJ.PROJECTNAME DSJ.HOSTNAME Resultado depende del TipoInfo especificado, de la forma siguiente: v DSJ.JOBLIST Serie - lista de nombres separados por coma de todos los trabajos conocidos por el proyecto (tanto si los trabajos estn conectados actualmente como si no). v DSJ.PROJECTNAME Serie - nombre del proyecto actual. v DSJ.HOSTNAME Serie - nombre del host del motor que mantiene el proyecto actual. Resultado puede devolver tambin una condicin de error de la forma siguiente: v DSJE.BADTYPE TipoInfo no se ha reconocido.

DSGetStageInfo
Proporciona un mtodo de obtener informacin sobre una etapa, que se puede utilizar de forma general as como para control de trabajos. Puede hacer referencia al trabajo actual, o un trabajo controlado, en funcin del valor de DescriptorContextoTrabajo.

Sintaxis
Resultado = DSGetStageInfo (DescriptorContextoTrabajo, NombreEtapa, TipoInfo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob o puede ser DSJ.ME para hacer referencia al trabajo actual. NombreEtapa es el nombre de la etapa que se interrogar. Tambin puede ser DSJ.ME para hacer referencia a la etapa actual, si es necesario. TipoInfo especifica la informacin necesaria y puede ser uno de los valores siguientes: DSJ.LINKLIST DSJ.STAGELASTERR DSJ.STAGENAME DSJ.STAGETYPE DSJ.STAGEINROWNUM

204

Gua del desarrollador de Server Job

DSJ.VARLIST DSJ.STAGESTARTTIMESTAMP DSJ.STAGEENDTIMESTAMP DSJ.STAGEDESC DSJ.STAGEINST DSJ.STAGECPU DSJ.LINKTYPES DSJ.STAGEELAPSED DSJ.STAGEPID DSJ.STAGESTATUS DSJ.STAGEEOTCOUNT DSJ.STAGEEOTTIMESTAMP DSJ.CUSTINFOLIST DSJ.STAGEEOTSTART Resultado depende del TipoInfo especificado, de la forma siguiente: v DSJ.LINKLIST - lista separada por comas de nombres de enlace en la etapa. v DSJ.STAGELASTERR Serie - ltimo mensaje de error (si hay alguno) notificado desde cualquier enlace de la etapa en cuestin. v DSJ.STAGENAME Serie - resulta especialmente til cuando se utiliza con DescriptorContextoSerie = DSJ.ME y NobreEtapa = DSJ.ME para descubrir su propio nombre. v DSJ.STAGETYPE Serie - el nombre de tipo de etapa (por ejemplo, "Transformer", "BeforeJob"). v DSJ.STAGEINROWNUM Entero - el nmero de fila de entrada del enlace primario. v DSJ.VARLIST - lista separada por comas de nombres de variables de etapa. v DSJ.STAGESTARTTIMESTAMP - fecha/hora en la que esa etapa ha empezado su ejecucin con el formato AAAA-MM-DD HH:NN:SS. v DSJ.STAGEENDTIMESTAMP - fecha/hora en la que esa etapa ha finalizado su ejecucin con el formato AAA-MM-DD HH:NN:SS. v DSJ.STAGEDESC - descripcin de etapa. v DSJ.STAGEINST - lista separada por comas de ID de instancia (trabajos paralelos). DSJ.STAGECPU - porcentaje en entero de CPU utilizada. DSJ.LINKTYPES - lista separada por comas de tipos de enlace. DSJ.STAGEELAPSED - tiempo transcurrido en segundos. DSJ.STAGEPID - lista separada por comas de ID de proceso. DSJ.STAGESTATUS - estado de etapa. DSJ.STAGEEOTCOUNT - Recuento de bloques EndOfTransmission procesados por esta etapa hasta ahora. v DSJ.STAGEEOTTIMESTAMP - Fecha/hora del ltimo bloque EndOfTransmission recibido por esta etapa. v v v v v v
Captulo 7. Programacin BASIC

205

v DSJ.CUSTINFOLIST - informacin personalizada generada por etapas (trabajos paralelos). v DSJ.STAGEEOTSTART - recuento de filas al inicio del bloque EndOfTransmission actual. Resultado tambin puede devolver condiciones de error de la forma siguiente: v DSJE.BADHANDLE DescriptorContextoTrabajo no era vlido. v DSJE.BADTYPE TipoInfo no se ha reconocido. v DSJE.NOTINSTAGE NombreEtapa era DSJ.ME y el emisor de la llamada no se est ejecutando dentro de una etapa. v DSJE.BADSTAGE NombreEtapa no hace referencia a una etapa conocida en el trabajo.

Comentarios
Cuando se hace referencia a un trabajo controlado, se puede utilizar DSGetStageInfo antes o despus de emitir un DSRunJob. Cualquier estado devuelto despus de una llamada satisfactoria a DSRunJob es una garanta de que est relacionado con esa ejecucin del trabajo.

Ejemplo
El mandato siguiente solicita el ltimo mensaje de error para la etapa de cargador del trabajo qsales:
stage_status = DSGetStageInfo(qsales_handle, "cargador", DSJ.STAGELASTERR)

DSGetStageLinks
Devuelve una lista delimitada por marcas de campo que contiene los nombres de todos los enlaces de entrada/salida de la etapa especificada.

Sintaxis
Resultado = DSGetStageLinks(Nombretrabajo, NombreEtapa, Clave) o Call DSGetStageLinks(Resultado, NombreTrabajo, NombreEtapa, Clave)

NombreTrabajo es el nombre del trabajo del proyecto actual para el que es necesaria la informacin. Si NombreTrabajo no existe en el proyecto actual, la funcin devolver una serie vaca. NombreEtapa es el nombre de la etapa en el trabajo especificado para la que es necesaria informacin. Si NombreEtapa no existe en el trabajo especificado, la funcin devolver una serie vaca. Clave dependiendo del valor de la clave, la lista devuelta contendr todos los enlaces de la etapa (Clave=0), slo los enlaces de entrada de la etapa (Clave=1) o slo los enlaces de salida de la etapa (Clave=2). Resultado devuelve una lista delimitada por marcas de campo que contiene los nombres de los enlaces.

Ejemplo
Lo siguiente devuelve una lista de todos los enlaces de entrada en la etapa denominada "unin1" en el trabajo "trabajoprueba":
linkslist = DSGetStageLinks (trabajoprueba, unin1, 1)

206

Gua del desarrollador de Server Job

DSGetStagesOfType
Devuelve una lista delimitada por marcas de campo que contiene los nombres de todas las etapas del tipo especificado en el trabajo nombrado.

Sintaxis
Resultado = DSGetStagesOfType (NombreTrabajo, TipoEtapa) o Call DSGetStagesOfType (Resultado, NombreTrabajo, TipoEtapa)

NombreTrabajo es el nombre del trabajo del proyecto actual para el que es necesaria la informacin. Si NombreTrabajo no existe en el proyecto actual, la funcin devolver una serie vaca. TipoEtapa es el nombre del tipo de etapa, como muestra el formulario de propiedades de tipo de etapa de repositorio, como por ejemplo CTransformerStage o ORAOCI8. Si el TipoEtapa no existe en el proyecto actual o no hay etapas de ese tipo en el trabajo especificado, la funcin devolver una serie vaca. Resultado devuelve una lista delimitada por marcas de campo que contiene los nombres de todas las etapas del tipo especificado en un trabajo nombrado.

Ejemplo
Lo siguiente devuelve una lista de todas las etapas Aggregator en el trabajo paralelo "trabajoprueba":
stagelist = DSGetStagesOfType (trabajoprueba, PxAggregator)

DSGetStagesTypes
Devuelve una serie delimitada por marcas de campo de todos los tipos de etapas activas y pasivas que existen dentro de un trabajo nombrado.

Sintaxis
Resultado = DSGetStageTypes(Nombretrabajo) o Call DSGetStageTypes(Resultado, Nombretrabajo)

NombreTrabajo es el nombre del trabajo del proyecto actual para el que es necesaria la informacin. Si NombreTrabajo no existe en el proyecto actual, Resultado se establecer en una serie vaca. Resultado es una serie delimitada por marcas de campo de tipos de etapas dentro de NombreTrabajo.

Ejemplo
Lo siguiente devuelve una lista de todos los tipos de etapa en el trabajo "trabajoprueba":
stagetypelist = DSGetStagesOfType (trabajoprueba)

DSGetVarInfo
Proporciona un mtodo de obtencin de informacin sobre variables utilizado en las etapas Transformer.

Sintaxis
Resultado = DSGetVarInfo (DescriptorContextotrabajo, NombreEtapa, NombreVar, TipoInfo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob o puede ser DSJ.ME para hacer referencia al trabajo actual.
Captulo 7. Programacin BASIC

207

NombreEtapa es el nombre de la etapa que se interrogar. Tambin puede ser DSJ.ME para hacer referencia a la etapa actual, si es necesario. NombreVar es el nombre de la variable que se interrogar. TipoInfo especifica la informacin necesaria y puede ser una de las opciones siguientes: DSJ.VARVALUE DSJ.VARDESCRIPTION Resultado depende del TipoInfo especificado, de la forma siguiente: v DSJ.VARVALUE Serie: el valor de la variable especificada. v DSJ.VARDESCRIPTION Serie: descripcin de la variable especificada. Resultado puede devolver tambin una condicin de error de la forma siguiente: v DSJE.BADHANDLE DescriptorContextoTrabajo no era vlido. v DSJE.BADTYPE TipoInfo no se ha reconocido. v DSJE.NOTINSTAGE NombreEtapa era DSJ.ME y el emisor de la llamada no se est ejecutando dentro de una etapa. v DSJE.BADVAR NombreVar no se ha reconocido. v DSJE.BADSTAGE NombreEtapa no hace referencia a una etapa conocida en el trabajo.

DSIPCPageProps
Devuelve el tamao (en KB) del almacenamiento intermedio de envo y recepcin de una etapa IPC (o servicio web).

Sintaxis
Resultado = DSGetIPCStageProps (NombreTrabajo, NombreEtapa) o Call DSGetIPCStageProps (Resultado, Nombretrabajo, NombreEtapa)

NombreTrabajo es el nombre del trabajo del proyecto actual para el que es necesaria la informacin. Si NombreTrabajo no existe en el proyecto actual, Resultado se establecer en una serie vaca. NombreEtapa es el nombre de una etapa IPC en el trabajo especificado para la que es necesaria informacin. Si NombreEtapa no existe o si no es una etapa IPC dentro de NombreTrabajo, el Resultado se establecer en una serie vaca. Resultado es una matriz que contiene los campos siguientes: v el tamao (en kilobytes) del almacenamiento intermedio de envo y recepcin de la etapa IPC (o servicio web) NombreEtapa dentro de NombreTrabajo. v el valor de tiempo de espera excedido en segundos de la etapa IPC (o servicio web) NombreEtapa dentro de NombreTrabajo.

Ejemplo
Lo siguiente devuelve el tamao y tiempo de espera excedido de la etapa "IPC1" en el trabajo "trabajoprueba":
buffersize = DSGetIPCStageProps (trabajoprueba, IPC1)

208

Gua del desarrollador de Server Job

DSLogEvent
Registra un mensaje de suceso en un trabajo distinto del actual. (Utilice DSLogInfo, DSLogFatal o DSLogWarn para registrar un suceso en el trabajo actual.)

Sintaxis
CdigoError = DSLogEvent (DescriptorContextoTrabajo, TipoSuceso, MsjSuceso)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. TipoSuceso es el tipo de suceso registrado y es uno de los siguientes: v DSJ.LOGINFO Mensaje de informacin v DSJ.LOGWARNING Mensaje de aviso MsjSuceso es una serie que contiene el mensaje del suceso. CdigoError es 0 si no hay ningn error. De lo contrario, contiene uno de los errores siguientes: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. v DSJE.BADTYPE TipoSuceso (especialmente, tenga en cuenta que no puede colocar un mensaje muy grave en el registro de otro trabajo).

Ejemplo
El mandato siguiente, cuando se incluye en el trabajo msales, aade el mensaje "ventas mensuales finalizadas" al registro para el trabajo qsales:
Logerror = DsLogEvent (qsales_handle, DSJ.LOGINFO, "ventas mensuales finalizadas")

DSLogFatal
Registra un mensaje de error muy grave en el archivo de registro de un trabajo y termina el trabajo.

Sintaxis
Call DSLogFatal (Mensaje, NombreProgLlamada)

Mensaje (entrada) es el mensaje de aviso que desea registrar. Mensaje recibe automticamente como prefijo el nombre de la etapa actual y la subrutina anterior/posterior de llamada. NombreProgLlamada (entrada) es el nombre de la subrutina anterior/posterior que llama a la subrutina DSLogFatal.

Comentarios
DSLogFatal graba un mensaje de error muy grave en el archivo de registro del trabajo y termina anormalmente el trabajo. DSLogFatal nunca vuelve a la subrutina anterior/posterior de llamada, de forma que se debe utilizar con precaucin. Si un trabajo se detiene con un error muy grave, se debe restablecer utilizando el cliente del Director antes de poder volver a ejecutarlo. En una subrutina anterior/posterior, es mejor registrar un mensaje de aviso (utilizando DSLogWarn) y salida con un cdigo de retorno distinto de cero, lo que permite que InfoSphere DataStage detenga el trabajo limpiamente. DSLogFatal no se debe utilizar en una transformacin. Se utiliza DSTransformError en su lugar.
Captulo 7. Programacin BASIC

209

Ejemplo
Call DSLogFatal("No se puede abrir el archivo", "MiRutina")

DSLogInfo
Registra un mensaje de informacin en el archivo de registro de un trabajo.

Sintaxis
Call DSLogInfo (Mensaje, NombreProgLlamada)

Mensaje (entrada) es el mensaje de informacin que desea registrar. Mensaje recibe automticamente como prefijo el nombre de la etapa actual y del programa de llamada. NombreProgLlamada (entrada) es el nombre de la transformacin o subrutina anterior/posterior que llama a la subrutina DSLogInfo.

Comentarios
DSLogInfo graba el texto del mensaje en el archivo de registro del trabajo como un mensaje de informacin y vuelve a la rutina de llamada o transformacin. Si se llama a DSLogInfo durante la fase de prueba para una rutina recientemente creada en el repositorio, los dos argumentos se visualizan en la ventana de resultados. Se puede grabar un nmero ilimitado de mensajes de informacin en el archivo de registro del trabajo. Sin embargo, si se producen muchos mensajes, es posible que el trabajo se ejecute lentamente y que el cliente del Director tarde algn tiempo en mostrar el archivo de registro del trabajo.

Ejemplo
Call DSLogInfo("Transformando: ":Arg1, "MiTransformacin")

DSLogToController
Esta rutina se puede utilizar para poner un mensaje informativo en el archivo de registro del trabajo que controla este trabajo, si hay alguno. Si no hay ninguno, la llamada simplemente se ignora.

Sintaxis
Call DSLogToController(SerieMsj)

SerieMsj es el texto que se registrar. El suceso de registro es de tipo Informacin.

Comentarios
Si el trabajo actual no est bajo control, se realiza una salida silenciosa.

Ejemplo
Call DSLogToController("Se registra en el padre")

DSLogWarn
Inicia un mensaje de aviso en el archivo de registro de un trabajo.

Sintaxis
Call DSLogWarn (Mensaje, NombreProgLlamada)

210

Gua del desarrollador de Server Job

Mensaje (entrada) es el mensaje de aviso que desea registrar. Mensaje recibe automticamente como prefijo el nombre de la etapa actual y la subrutina anterior/posterior de llamada. NombreProgLlamada (entrada) es el nombre de la subrutina anterior/posterior que llama a la subrutina DSLogWarn.

Comentarios
DSLogWarn graba el mensaje en el archivo de registro del trabajo como aviso y devuelve la subrutina anterior/posterior de llamada. Si el trabajo tiene un lmite de aviso definido para el mismo, cuando el nmero de avisos alcanza ese lmite, la llamada no devuelve el valor de retorno y el trabajo termina anormalmente. DSLogWarn no se debe utilizar en una transformacin. Se utiliza DSTransformError en su lugar.

Ejemplo
If InputArg > 100 Then Call DSLogWarn("La entrada debe ser =< 100; received ":InputArg,"MiRutina") End Else * Continuar procesando a menos que el trabajo termine anormalmente End

DSMakeJobReport
Genera un informe que describe el estado completo de un trabajo conectado vlido.

Sintaxis
TextoInforme = DSMakeJobReport(DescriptorContextoTrabajo, NivelInforme, SeparadorLneas)

DescriptorContextoTrabajo es la serie tal como se ha devuelto de DSAttachJob. NivelInforme especifica el tipo de informe y es uno de los siguientes: v 0 - informe bsico. Serie de texto que contiene fecha de inicio/finalizacin, tiempo transcurrido y estado de trabajo. v 1 - detalle de etapa/enlace. Como el informe bsico, pero tambin contiene informacin sobre etapas individuales y enlaces dentro del trabajo. v 2 - serie de texto que contiene el informe XML completo. De manera predeterminada, el XML generado no contendr una instruccin de proceso <?xml-stylesheet?>. Si es necesaria una hoja de estilo, especifique un NivelInforme de 2 y aada el nombre del URL de hoja de estilo necesario, es decir, 2;URLHojaEstilo. Esto inserta una instruccin de proceso en el XML generado con el formato:
<?xml-stylesheet type=text/xsl" href="URLHojaEstilo"?>

SeparadorLneas es la serie utilizada para separar lneas del informe. Los valores especiales reconocidos son: v "CRLF" => CHAR(13):CHAR(10) v "LF" => CHAR(10) v "CR" => CHAR(13) El valor predeterminado es CRLF si se trata de Windows, de lo contrario LF.

Captulo 7. Programacin BASIC

211

Comentarios
Si se proporciona un descriptor de contexto de trabajo incorrecto, o se encuentra cualquier otro error, la informacin se aade a TextoInforme.

Ejemplo
h$ = DSAttachJob("MiTrabajo", DSJ.ERRNONE) rpt$ = DSMakeJobReport(h$,0,"CRLF")

DSMakeMsg
Inserta argumentos en una plantilla de mensaje. Opcionalmente, buscar un ID de plantilla en el archivo de mensajes de InfoSphere DataStage y utilizar cualquier plantilla de mensaje devuelta en lugar de la proporcionada a la rutina.

Sintaxis
TextoCompleto = DSMakeMsg(Plantilla, ListaArg)

TextoCompleto es el mensaje con parmetros sustituidos Plantilla es la plantilla de mensaje, en la que %1, %2, etc. se sustituirn por valores en la posicin equivalente en ListaArg. Si la serie de plantilla empieza con un nmero seguido de "\", se asume que forma parte de un ID de mensaje que se buscar en el archivo de mensajes de InfoSphere DataStage. Nota: si una seal de argumento va seguida de "[E]", se asume que el valor de ese argumento es un cdigo de error de control de trabajo y se insertar una explicacin del mismo en lugar de "[E]". (Consulte la funcin DSTranslateCode.) ListaArg es la matriz dinmica, un campo por argumento que se sustituir.

Comentarios
Se llama a esta rutina desde el cdigo de control de trabajo creado por JobSequence Generator. Tambin realizar sustitucin de parmetros de trabajo local en el texto del mensaje. Es decir, si se llama desde dentro de un trabajo, busca subseries como por ejemplo "#xyz#" y las sustituye por el valor del parmetro de trabajo denominado "xyz".

Ejemplo
t$ = DSMakeMsg("Error al llamar a DSAttachJob(%1)<L>%2", jb$:@FM:DSGetLastErrorMsg())

DSPrepareJob
Se utiliza para asegurar que un trabajo compilado est en el estado correcto para ser ejecutado o validado.

Sintaxis
DescriptorContextoTrabajo = DSPrepareJob(DescriptorContextoTrabajo)

DescriptorContextoTrabajo es el descriptor de contexto, tal como lo devuelve DSAttachJob(), del trabajo que se preparar.

212

Gua del desarrollador de Server Job

DescriptorContextoTrabajo es el descriptor de contexto original o uno nuevo. Si se devuelve como 0, se produce un error y se registra un mensaje.

Ejemplo
h$ = DSPrepareJob(h$)

DSRunJob
Inicia la ejecucin de un trabajo. Tenga en cuenta que esta llamada es asncrona; la solicitud se pasa al motor de tiempo de ejecucin, pero no se informa de su progreso.

Sintaxis
CdigoError = DSRunJob (DescriptorContextoTrabajo, ModalidadEjecucin)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. RunMode es el nombre de la modalidad en la que se ejecutar el trabajo y es una de las siguientes: v DSJ.RUNNORMAL (Valor predeterminado) Ejecucin de trabajo estndar. v DSJ.RUNRESET El trabajo se restablecer. v DSJ.RUNVALIDATE El trabajo slo se validar. v DSJ.RUNRESTART La secuencia de trabajos reiniciable debe reiniciarse con los valores de parmetros del trabajo original. CdigoError es 0 si DSRunJob es satisfactorio; de lo contrario puede ser uno de los enteros negativos siguientes: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. v DSJE.BADSTATE El trabajo no est en el estado correcto (compilado, no en ejecucin). v DSJE.BADTYPE ModalidadEjecucin no es una modalidad conocida.

Comentarios
Si el trabajo de control se ejecuta en modalidad de validacin, cualquier llamada de DSRunJob actuar como si ModalidadEjecucin fuera DSJ.RUNVALIDATE, independientemente del valor real. Un trabajo en modalidad de validacin ejecutar su rutina JobControl (si existe) en lugar de comprobar solamente su existencia, como es el caso para las rutinas anteriores/posteriores. Esto permite examinar el registro de qu trabajo ha iniciado en modalidad de validacin. Despus de llamar a DSRunJob, el descriptor de contexto del trabajo controlado se descarga. Si es necesario ejecutar el mismo trabajo de nuevo, debe utilizar DSDetachJob y DSAttachJob para establecer un nuevo descriptor de contexto. Tenga en cuenta que tambin necesitar utilizar DSWaitForJob, ya que no puede se conectar a un trabajo mientras est en ejecucin.

Ejemplo
El mandato siguiente inicia el trabajo qsales en modalidad estndar:
RunErr = DSRunJob(qsales_handle, DSJ.RUNNORMAL)

Captulo 7. Programacin BASIC

213

DSSendMail
Esta rutina es una interfaz a un programa sendmail que se asume que existe en algn lugar de la va de bsqueda del usuario actual (en el host de la capa de motor). Oculta las distintas interfaces de llamada a diversos programas sendmail y proporciona una sencilla interfaz para enviar texto. Por ejemplo:

Sintaxis
Respuesta = DSSendMail(Parmetros)

Parmetros es un conjunto de parmetros nombre:valor, separados por un carcter de marcador o "\n". Los nombres que se reconocen actualmente (sin distinguir entre maysculas y minsculas) son los siguientes: v "De" Direccin de correo del remitente, por ejemplo, Aqui@Enalgnlugar.com Slo se puede dejar en blanco si el archivo de plantilla local no contiene una seal "%from%". v "Para" Direccin de correo del destinatario, por ejemplo, Tu@Enalgnlugar.com Slo se puede dejar en blanco si el archivo de plantilla local no contiene una seal "%to%". v "Asunto" Algo que poner en la lnea del asunto del mensaje. Hace referencia a la seal "%subject%". Si se deja como "", se crear una lnea de asunto estndar, junto con las lneas de "From InfoSphere DataStage job: jobname" v "Servidor" Nombre de host a travs del cual se enviar el correo. Se puede omitir en sistemas (por ejemplo, Unix) donde el nombre de host SMTP se puede configurar, y se configura, externamente, en cuyo caso el archivo de plantilla local presumiblemente no contendr una seal "%server%". v "Cuerpo" Cuerpo del mensaje. Se puede omitir. Se enviar un mensaje vaco. Si se utiliza, debe ser el ltimo parmetro, para permitir la obtencin de varias lneas en el mensaje, utilizando "\n" para saltos de lnea. Hace referencia a la seal "%body%". Nota: Es posible que el texto del cuerpo contenga las seales "%report% o %fullreport% en cualquier lugar dentro del mismo, lo que har que se inserte en ese punto un informe en el estado de trabajo actual. Un informe completo contiene informacin de etapa y enlace as como estado de trabajo. Respuesta. Las respuestas posibles son: v DSJE.NOERROR (0) OK v DSJE.NOPARAM Falta nombre de parmetro - el campo no tiene el aspecto 'nombre:valor' v DSJE.NOTEMPLATE No se puede encontrar archivo de plantilla v DSJE.BADTEMPLATE Error en archivo de plantilla

Comentarios
La rutina busca un archivo local en el directorio actual de proyectos, con un nombre conocido. Es decir, una plantilla para describir exactamente cmo ejecutar el mandato sendmail local.

Ejemplo
code = DSSendMail("De:yo@aqu\nPara:Tu@all\nAsunto:Hola\nCuerpo:Lnea1\nLnea2")

DSSetDisableJobHandler
Habilitar o inhabilitar la gestin de mensajes a nivel de trabajo.

214

Gua del desarrollador de Server Job

Sintaxis
CdigoError = DSSetDisableJobHandler (DescriptorContextoTrabajo, valor)

DescriptorContextotrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. valor es TRUE para inhabilitar la gestin de mensajes a nivel de trabajo o FALSE para habilitarla. CdigoError es 0 si DSSetDisableJobHandler es satisfactorio; de lo contrario, es uno de los siguientes valores negativos: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido v DSJE.BADVALUE valor no es adecuado para este tipo de parmetro.

Ejemplo
El mandato siguiente inhabilita la gestin de mensajes a nivel de trabajo para el trabajo qsales:
GenErr = DSSetDisableJobHandler (qsales_handle, TRUE)

DSSetDisableProjectHandler
Habilitar o inhabilitar la gestin de mensajes a nivel de proyecto.

Sintaxis
CdigoError = DSSetDisableProjectHandler (DescriptorContextoProyecto, valor)

DescriptorContextoProyecto es el valor devuelto de DSOpenProject. valor es TRUE para habilitar la gestin de mensajes a nivel de proyecto o FALSE para habilitar la gestin de mensajes a nivel de proyecto. CdigoError es 0 si DSSetDisableProjectHandler es satisfactorio; de lo contrario, puede ser uno de los siguientes enteros negativos: v DSJE.BADHANDLE Invalid DescriptorContextoProyecto. v DSJE.BADVALUE valor no es adecuado para este tipo de parmetro.

Ejemplo
El mandato siguiente inhabilita la gestin de mensajes a nivel de proyecto para el trabajo qsales:
GenErr = DSSetDisableProjectHandler (qsales_handle, TRUE)

DSSetGenerateOpMetaData
Se utiliza para especificar si el trabajo genera metadatos operativos. Altera temporalmente el valor predeterminado para el proyecto.

Sintaxis
CdigoError = DSSetGenerateOpMetaData (DescriptorContextoTrabajo, valor)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. valor es TRUE para generar metadatos operativos, FALSE para no generar metadatos operativos. CdigoError es 0 si DSRunJob es satisfactorio; de lo contrario puede ser uno de los enteros negativos siguientes:
Captulo 7. Programacin BASIC

215

v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido. v DSJE.BADTYPE valor es incorrecto.

Ejemplo
El mandato siguiente hace que el trabajo qsales genere metadatos operativos independientemente de lo que especifique el valor predeterminado del proyecto: GenErr = DSSetGenerateOpMetaData(qsales_handle, TRUE)

DSSetJobLimit
De manera predeterminada, un trabajo controlado hereda los lmites de filas o avisos del trabajo de control. Sin embargo, la funcin DSSetJobLimit los puede alterar temporalmente.

Sintaxis
CdigoError = DSSetJobLimit (DescriptorTrabajoContexto, TipoLmite, ValorLmite)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. TipoLmite es el nombre del lmite que se aplicar al trabajo en ejecucin y es uno de los siguientes: v DSJ.LIMITWARN Trabajo que se detendr despus de ValorLmite sucesos de aviso. v DSJ.LIMITROWS Etapas que se limitarn a ValorLmite filas. ValorLmite es un entero que especifica el valor en el que se establecer el lmite. Establzcalo en 0 para especificar un nmero ilimitado de avisos. CdigoError es 0 si DSSetJobLimit es satisfactorio; de lo contrario, es uno de los siguientes valores negativos: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido v DSJE.BADSTATE El trabajo no est en el estado correcto (compilado, no en ejecucin). v DSJE.BADTYPE TipoLmite no es una condicin de lmite conocida. v DSJE.BADVALUE ValorLmite no es adecuado para el tipo de condicin de limitacin.

Ejemplo
El mandato siguiente establece un lmite de 10 avisos en el trabajo qsales antes de que se detenga:
LimitErr = DSSetJobLimit(qsales_handle, DSJ.LIMITWARN, 10)

DSSetParam
Especifica los valores de parmetro del trabajo antes de ejecutar un trabajo. Cualquier parmetro que no se establezca adoptar el valor predeterminado.

Sintaxis
CdigoError = DSSetParam (DescriptorContextoTrabajo, NombreParm, ValorParm)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob. NombreParm es una serie que proporciona el nombre del parmetro. ValorParm es una serie que proporciona el valor del parmetro.

216

Gua del desarrollador de Server Job

CdigoError es 0 si DSSetParam es satisfactorio; de lo contrario, puede ser uno de los siguientes enteros negativos: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido v DSJE.BADSTATE El trabajo no est en el estado correcto (compilado, no en ejecucin). v DSJE.BADPARAM NombreParm no es un parmetro conocido del trabajo. v DSJE.BADVALUE ValorParm no es adecuado para este tipo de parmetro.

Ejemplo
Los mandatos siguientes establecen el parmetro de trimestre en 1 y el parmetro de fecha de inicio en 1/1/97 para el trabajo qsales:
paramerr = DSSetParam (qsales_handle, "trimestre", "1") paramerr = DSSetParam (qsales_handle, "fecha de inicio", "1997-01-01")

DSSetUserStatus
Se aplica slo al trabajo actual y no toma un parmetro DescriptorContextoTrabajo. La puede utilizar cualquier trabajo en una rutina de control de trabajo o posterior para establecer un cdigo de terminacin para la interrogacin por parte de otro trabajo. De hecho, el cdigo se puede establecer en cualquier punto del trabajo y el ltimo valor es el que se tomar en cualquier momento. Por lo tanto, para estar seguro de obtener el cdigo de terminacin real para un trabajo, el emisor de la llamada debe utilizar en primer lugar DSWaitForJob y DSGetJobInfo, comprobando si hay un estado de finalizacin satisfactorio. Esta rutina se define como una subrutina, no como funcin, porque no hay posibles errores.

Sintaxis
Call DSSetUserStatus (EstadoUsuario)

EstadoUsuario La serie es cualquier mensaje de terminacin definido por el usuario. La serie se registrar como parte de un suceso de "control" adecuado en el registro del trabajo de llamada y se almacenar para su recuperacin por parte de DSGetJobInfo, sobrescribiendo la serie almacenada anterior. Esta serie no debe ser un entero negativo; de lo contrario es posible que no se distinga de un error interno en llamadas a DSGetJobInfo.

Ejemplo
El mandato siguiente establece un cdigo de terminacin de "trabajo de venta finalizado":
Call DSSetUserStatus("trabajo de venta finalizado")

DSStopJob
Esta rutina slo se debe utilizar despus de haber emitido un DSRunJob. Inmediatamente enva una solicitud de detencin al motor de tiempo de ejecucin. La llamada es asncrona. Si necesita saber que el trabajo se ha detenido realmente, debe llamar a DSWaitForJob o utilizar la sentencia de Suspensin y buscar DSGetJobStatus. Tenga en cuenta que la solicitud de detencin se enva independientemente del estado actual del trabajo.

Sintaxis
CdigoError = DSStopJob (DescriptorContextoTrabajo)

DescriptorContextoTrabajo es el descriptor de contexto para el trabajo tal como se deriva de DSAttachJob.


Captulo 7. Programacin BASIC

217

CdigoError es 0 si DSStopJob es satisfactorio; de lo contrario puede ser uno de los siguientes: v DSJE.BADHANDLE DescriptorContextoTrabajo no vlido.

Ejemplo
El siguiente mandato solicita que se detenga el trabajo qsales:
stoperr = DSStopJob(qsales_handle)

DSTransformError
Registra un mensaje de aviso en un archivo de registro del trabajo. Se llama a esta funcin desde transformaciones solamente.

Sintaxis
Call DSTransformError (Mensaje, NombreTransformacin)

Mensaje (entrada) es el mensaje de aviso que desea registrar. Mensaje recibe automticamente como prefijo el nombre de la etapa actual y la transformacin de llamada. NombreTransformacin (entrada) es el nombre de la transformacin que llama a la subrutina DSTransformError.

Comentarios
DSTransformError graba el mensaje (y otra informacin) en el archivo de registro del trabajo como aviso y vuelve a la transformacin. Si el trabajo tiene un lmite de aviso definido para el mismo, cuando el nmero de avisos alcanza ese lmite, la llamada no devuelve el valor de retorno y el trabajo termina anormalmente. Adems del mensaje de aviso, DSTransformError registra los valores de todas las columnas en las filas actuales para todos los enlaces de entrada y salida conectados a la etapa actual.

Ejemplo
Function MySqrt(Arg1) If Arg1 < 0 Then Call DSTransformError("Valor negativo:"Arg1, "MySqrt") Return("0") ;*la transformacin produce 0 en este caso End Result = Sqrt(Arg1) ;* de lo contrario devuelve la raz cuadrada Return(Result)

DSTranslateCode
Convierte un estado de control de trabajo o cdigo de error en un mensaje de texto explicativo.

Sintaxis
Ans = DSTranslateCode(Cdigo)

Cdigo es: v Si Cdigo > 0, se presupone que es un estado de trabajo. v Si Cdigo < 0, se presupone que es un cdigo de error. v (No se debe pasar nunca 0 y devolver "ningn error") Ans es el mensaje asociado con el cdigo.

218

Gua del desarrollador de Server Job

Comentarios
Si Cdigo no se reconoce, se notificar Ans.

Ejemplo
code$ = DSGetLastErrorMsg() ans$ = DSTranslateCode(code$)

DSWaitForFile
Suspende un trabajo hasta que existe o no existe un archivo nombrado.

Sintaxis
Respuesta = DSWaitForFile(Parmetros)

Parmetros es la va de acceso completa del archivo que se debe esperar. No se realiza ninguna comprobacin respecto a si se trata de una va de acceso razonable (por ejemplo, si existen todos los directorios de la va de acceso). Un nombre de va de acceso que empieza con "-" indica un distintivo para comprobar la no-existencia de la va de acceso. No forma parte del nombre de va de acceso. Los parmetros tambin pueden finalizar con el formato "timeout:NNNN" (o "timeout=NNNN"). Esto indica un tiempo no predeterminado que se debe esperar antes de abandonar. Existen varios formatos posibles, y no distinguen entre maysculas y minsculas: v nnn nmero de segundos a esperar (a partir de ahora) v nnnS dem v nnnM nmero de minutos que se debe esperar (desde ahora) v nnnH nmero de horas que se debe esperar (desde ahora) v nn:nn:nn esperar hasta esta hora en 24HH:NN:SS. Si se ha pasado esta hora o nn:nn, esperar hasta el da siguiente. El tiempo de espera predeterminado es el mismo que "12H". El formato puede opcionalmente terminar con "/nn", lo que indica un tiempo de retardo de sondeo en segundos. Si se omite, se utiliza un tiempo de sondeo predeterminado. Respuesta puede ser: v DSJE.NOERROR (0) OK - El archivo ahora existe o no existe, dependiendo del distintivo. v DSJE.BADTIME Formato de tiempo de espera no reconocido v DSJE.NOFILEPATH Falta va de acceso de archivo v DSJE.TIMEOUT Se ha esperado demasiado

Ejemplos
Respuesta = DSWaitForFile("C:\ftp\incoming.txt timeout:2H")

(espera 7200 segundos a que exista el archivo en C: antes de abandonar.)


Respuesta = DSWaitForFile("-incoming.txt timeout=15:00")

(espera hasta las 3 de la tarde a que NO exista el archivo en el directorio local.)


Respuesta = DSWaitForFile("incoming.txt timeout:3600/60")

(espera 1 hora a que exista un archivo local, comprobndolo una vez por minuto.)

Captulo 7. Programacin BASIC

219

DSWaitForJob
Esta funcin slo es vlida si el trabajo actual ha emitido un DSRunJob en los DescriptorContextoTrabajo proporcionados. Si uno de los trabajos cuyos descriptores de contexto que se encuentran en la lista ha finalizado, la funcin DSWaitForJob devuelve el control inmediatamente. Si ninguno de los trabajos ha finalizado, la funcin DSWaitForJob devuelve el control en cuanto finaliza uno de los trabajos.

Sintaxis
CdigoError = DSWaitForJob (DescriptorContextoTrabajo)

DescriptorContextoTrabajo es la serie devuelta de DSAttachJob. Si contiene comas, DescriptorContextoTrabajo es un conjunto delimitado por comas de descriptores de contexto de trabajo, que representa una lista de trabajos a los que se debe esperar. CdigoError es 0 sino hay ningn error, de lo contrario los posibles valores de error (<0) son: v DSJE.BADHANDLE DescriptorContextoTrabajo incorrecto. v DSJE.WRONGJOB El trabajo para este DescriptorContextoTrabajo no se ha ejecutado desde dentro de este trabajo. CdigoError es >0 => el descriptor de contexto del trabajo ha finalizado desde una espera de varias trabajos.

Comentarios
DSWaitForJob est a la espera de un solo trabajo o varios trabajos.

Ejemplo
Para esperar el retorno del trabajo qsales:
WaitErr = DSWaitForJob(qsales_handle)

Funcin Dtx
Convierte un entero decimal en hexadecimal.

Sintaxis
Dtx (nmero [ ,tamao] )

nmero es el nmero decimal que se va a convertir. Si el nmero es un valor nulo, se devuelve un nulo. tamao es el nmero mnimo de caracteres en el valor hexadecimal. El valor devuelto se rellena con ceros iniciales, segn sea necesario. Si el tamao es un valor nulo, se produce un error de tiempo de ejecucin.

Ejemplo
Este es un ejemplo de la funcin Dtx que se utiliza para convertir un nmero decimal en una representacin de serie hexadecimal:
MyNumber = 47 MyHex = Dtx(MyNumber) MyHex = Dtx(MyNumber, 4) ;* devuelve "2F" ;* devuelve "002F"

220

Gua del desarrollador de Server Job

Funcin Ebcdic
Convierte los valores de los caracteres de una serie del formato ASCII al formato EBCDIC.

Sintaxis
Ebcdic (serie)

serie es la serie o la expresin que desea convertir. Si la serie es un valor nulo, se produce un error de tiempo de ejecucin.

Comentarios
Las funciones Ebcdic y Ascii realizan operaciones complementarias. Nota: Si el soporte multilingstico est habilitado, esta funcin puede devolver datos no reconocidos para la correlacin de juego de caracteres actual.

Ejemplo
Este ejemplo muestra cmo se utiliza la funcin Ebcdic para convertir una serie de bytes ASCII:
AsciiStr = "A1" EbcdicStr = Ebcdic(AsciiStr) ;* convierte todos los bytes a EBCDIC * (La letra A es el decimal 193, el dgito 1 es el decimal 241 en EBCDIC) If EbcdicStr = Char(193):Char(241) Then ... ;* ... por lo tanto, se utiliza esta ramificacin EndIf

Sentencia End
Indica el final de un programa, una subrutina o bloque de sentencias.

Sintaxis
End End Case

Comentarios
Utilice una sentencia End en el medio de un programa para finalizar una seccin de una sentencia If u otras sentencias condicionales. Utilice End Case para finalizar un conjunto de sentencias Case.

Ejemplos
Este ejemplo ilustra el uso de una sentencia End con varias formas de la construccin If...Then en una rutina:
Function MyTransform(Arg1, Arg2, Arg3) * Las clusulas Then y Else ocupan una lnea cada una: If Arg1 Matches "A..." Then Reply = 1 Else Reply = 2 * Clusulas multilnea: If Len(arg1) > 10 Then Reply += 1 Reply = Arg2 * Reply End Else
Captulo 7. Programacin BASIC

221

Reply += 2 Reply = (Arg2 - 1) * Reply End * Otro estilo de las clusulas multilnea: If Len(Arg1) > 20 THEN Reply += 2 Reply = Arg3 * Reply End Else Reply += 4 Reply = (Arg3 - 1) * Reply End Return(Reply)

Este ejemplo utiliza una sentencia End Case con una sentencia Case:
Function MyTransform(Arg1) Begin Case Case Arg1 = 1 Reply = "A" Case Arg1 = 2 Reply = "B" Case Arg1 > 2 And Arg1 < 11 Reply = "C" Case @True ;* los dems valores Call DSTransformError("Bad arg":Arg1, "MyTransform" Reply = "" End Case Return(Reply)

Sentencia Equate
Compara un valor con un smbolo o una serie literal durante la compilacin. No est disponible en las expresiones.

Sintaxis
Equate smbolo To valor [ ,smbolo To valor] ... Equate smbolo Literally valor [ ,smbolo Literally valor] ...

smbolo es el nombre de comparacin que desea dar a un valor en el programa. El valor de smbolo no puede ser un nmero. valor es el valor que desea identificar mediante smbolo. El valor debe ir entre comillas. To especifica que el valor es un tipo cualquiera de expresin. Literally (o Lit) especifica que el valor es una serie literal.

Comentarios
Puede comparar el smbolo slo una vez; de lo contrario, obtiene un error de compilador.

Ejemplo
El ejemplo siguiente muestra cmo utilizar Equate...To y Equate...Literally para establecer smbolos en el cdigo:

222

Gua del desarrollador de Server Job

Function MyFunction(Arg1, Arg2) Equate Option1 To "O1" Equate Option2 To "O2" Equate TestOption Literally "If Arg1 = " TestOption Option1 Then ;* el cdigo se convierte en: If Arg1 = "1 Then Ans = ... End TestOption Option2 Then ;* el cdigo se convierte en: If Arg1 = "O2" Then Ans = ... End Return(Ans)

Funcin Ereplace
Sustituye una o varias instancias de una subserie.

Sintaxis
Ereplace (serie, subserie, sustitucin [ ,nmero [ ,inicio] ] )

serie es la serie o la expresin. subserie es la subserie que desea sustituir. Si la subserie es una serie vaca, se devuelve el valor de la serie. sustitucin es la subserie de sustitucin. Si sustitucin es una serie vaca, se eliminan todas las apariciones de subserie. nmero especifica el nmero de instancias de subserie que hay que sustituir. Para cambiar todas las instancias, utilice un valor menor que 1. inicio especifica la primera instancia que hay que sustituir. Un valor menor que 1 toma el valor 1 de forma predeterminada.

Comentarios
Un valor nulo para serie devuelve un valor nulo. Si utiliza un valor nulo para otra variable, se produce un error de tiempo de ejecucin.

Ejemplos
El siguiente ejemplo sustituye todas las apariciones de una subserie por otra:
MyString = "AABBCCBBDDBB" NewString = Ereplace(MyString, "BB", "xxx") * El resultado es "AAxxxCCxxxDDxxx"

El ejemplo siguiente sustituye slo las dos primeras apariciones:


MyString = "AABBCCBBDDBB" NewString = Ereplace(MyString, "BB", "xxx", 2, 1) * El resultado es "AAxxxCCxxxDDBB"

El ejemplo siguiente elimina todas las apariciones de la subserie:


MyString = "AABBCCBBDDBB" NewString = Ereplace(MyString, "BB", "") * El resultado es "AACCDD"

Captulo 7. Programacin BASIC

223

Funcin Exchange
Sustituye un carcter en una serie.

Sintaxis
Exchange (serie, buscar.carcter, sustituir.carcter)

serie es la serie o la expresin que contiene el carcter que desea sustituir. Una serie nula devuelve un valor nulo. buscar.carcter es el valor hexadecimal del carcter que se busca. Si buscar.carcter es un valor nulo, Exchange falla y genera un error de tiempo de ejecucin. sustituir.carcter es el valor hexadecimal del carcter de sustitucin. Si el valor de sustituir.carcter es FF, buscar.carcter se suprime de la serie. Si sustituir.carcter es un valor nulo, Exchange falla y genera un error de tiempo de ejecucin.

Comentarios
Exchange sustituye todas las apariciones del carcter especificado. Si el soporte multilingstico est habilitado, Exchange utiliza los dos primeros bytes de buscar.carcter y sustituir.carcter. Los caracteres se evalan de la siguiente manera:
Bytes De 00 a FF De 00 a FA De FB a FE Se evalan como... De 00 a FF Caracteres Unicode de 0000 a FA Delimitadores del sistema

Ejemplo
En el ejemplo siguiente, 41 es el valor hexadecimal del carcter "A" y 2E es el valor hexadecimal del carcter de punto (.):
MyString = Exchange("ABABC", "41", "2E") * el resultado es ".B.BC" * La lnea anterior es funcionalmente equivalente a: * MyString = Convert("A", ".", "ABABC")

Funcin Exp
Devuelve el valor de "e" elevado a la potencia especificada.

Sintaxis
Exp (potencia)

potencia es un nmero o una expresin numrica que especifica la potencia. Un valor nulo devuelve un valor nulo. Si la potencia es demasiado alta o baja, se genera un mensaje de aviso y se devuelve 0.

224

Gua del desarrollador de Server Job

Comentarios
El valor de "e" es aproximadamente 2,71828. La frmula utilizada para realizar el clculo es:
Exp valor de funcin = 2.71828**(potencia)

Ejemplo
Este ejemplo utiliza la funcin Exp para devolver "e" elevado a una potencia:
* Se define el ngulo en radianes. MyAngle = 1.3 * Se calcula la secante hiperblica. MyHSec = 2 / (Exp(MyAngle) + Exp(-MyAngle))

Funcin Field
Devuelve las subseries delimitadas de una serie.

Sintaxis
Field (serie, delimitador, instancia [ ,nmero] )

serie es la serie que contiene la subserie. Si serie es un valor nulo, se devuelve el valor nulo. delimitador es el carcter que delimita la subserie. Si delimitador es una serie vaca, se devuelve la serie. Si la serie no contiene un delimitador, se devuelve una serie vaca, salvo que instancia sea 1, en cuyo caso se devuelve la serie. Si el delimitador es un valor nulo, se produce un error de tiempo de ejecucin. Si se devuelve ms de una subserie, se devuelven los delimitadores con las subseries. instancia especifica qu instancia del delimitador termina la subserie. Si instancia es menor que 1, se supone 1. Si la serie no contiene la instancia, se devuelve una serie vaca. Si la instancia es un valor nulo, se produce un error de tiempo de ejecucin. El nmero especifica el nmero de subseries delimitadas que se devolvern. Si el nmero es una serie vaca o menor que 1, se supone 1. Si el nmero es un valor nulo, se produce un error de tiempo de ejecucin.

Ejemplos
En el siguiente ejemplo, la variable MyString se establece en los datos entre la tercera y la cuarta aparicin del delimitador "#":
MyString = Field("###DHHH#KK","#", 4) ;* devuelve "DHHH"

En el siguiente ejemplo, SubString se establece en "" ya que el delimitador "/" no aparece en la serie:
MyString = "London+0171+NW2+AZ" SubString = Field(Mystring, "/", 1) ;* devuelve ""

En el siguiente ejemplo, SubString se establece en "0171+NW2", ya que se han solicitado dos campos utilizando el delimitador "+" (el segundo y el tercer campo):
MyString = "London+0171+NW2+AZ" SubString = Field(Mystring, "+", 2, 2) * devuelve "0171+NW2"

Captulo 7. Programacin BASIC

225

Funcin FieldStore
Modifica las series de caracteres insertando, suprimiendo o sustituyendo los campos separados por los delimitadores especificados.

Sintaxis
FieldStore (serie, delimitador, inicio, nmero, nuevos.campos)

serie es la serie que se va a modificar. Si serie es un valor nulo, se devuelve el valor nulo. delimitador delimita los campos y puede ser un carcter ASCII individual cualquiera. Si delimitador es nulo, se produce un error de tiempo de ejecucin. inicio es el nmero del campo que inicia la modificacin. v Si inicio es mayor que el nmero de campos de serie, la serie se rellena con campos vacos antes de iniciar el proceso. v Si inicio es nulo, se produce un error de tiempo de ejecucin. nmero es el nmero de campos de nuevos.campos que se insertan en la serie. v Si el nmero es positivo, se sustituir el nmero indicado de campos de serie por el nmero indicado de primeros campos de nuevos.campos. v Si el nmero es negativo, se sustituirn el nmero indicado de campos de serie por todos los campos de nuevos.campos. v Si el nmero es 0, se insertarn todos los campos de nuevos.campos en la serie antes del campo indicado por inicio. v Si el nmero es nulo, se produce un error de tiempo de ejecucin. nuevos.campos es una serie o una expresin que contiene los nuevos campos que se utilizarn. Si nuevos.campos es nulo, se produce un error de tiempo de ejecucin.

Ejemplo
Los siguientes ejemplos muestran varias formas de sustituir subseries en una serie:
MyString = "1#2#3#4#5" String = Fieldstore(MyString, "#", 2, 2, "A#B") * El cdigo anterior da como resultado: "1#A#B#4#5" String2 = Fieldstore(MyString, "#", 2, -2, "A#B") * El cdigo anterior da como resultado: "1#A#B#4#5" String3 = Fieldstore(MyString, "#", 2, 0, "A#B") * El cdigo anterior da como resultado: "1#A#B#2#3#4#5" String4 = Fieldstore(MyString, "#", 1, 4, "A#B#C#D") * El cdigo anterior da como resultado: "A#B#C#D#5" String5 = Fieldstore(MyString, "#", 7, 3, "A#B#C#D") * El cdigo anterior da como resultado: "1#2#3#4#5##A#B#"

226

Gua del desarrollador de Server Job

Funcin FIX
Utilice la funcin FIX para convertir un valor numrico en un nmero de coma flotante con una precisin especificada. FIX permite controlar la exactitud del clculo eliminando los datos excesivos o poco fiables de los resultados numricos. Por ejemplo, una aplicacin bancaria que calcula la acumulacin de intereses de las cuentas de los clientes no necesita manejar crditos expresados en fracciones de cntimos. Una aplicacin de ingeniera tiene que descartar los dgitos que rebasan el grado de fiabilidad aceptado para los clculos.

Sintaxis
FIX (nmero [ ,precisin [ ,modalidad ] ] )

La expresin nmero se evala como el valor numrico que se convertir.Si nmero se evala como valor nulo, se devuelve el valor nulo. La expresin precisin se evala como el nmero de dgitos de precisin del nmero de coma flotante. La precisin predeterminada es 4. El distintivo modalidad indica cuntos dgitos sobrantes se manejan. Si modalidad es 0 o no se especifica, los dgitos sobrantes se redondean. Si modalidad es un valor distinto de 0, los dgitos sobrantes se truncan.

Ejemplos
El ejemplo siguiente calcula un valor con la precisin predeterminada 4:
REAL.VALUE = 37.73629273 PRINT FIX (REAL.VALUE)

Esta es la salida del programa:


37.7363

El ejemplo siguiente calcula el mismo valor con dos dgitos de precisin. El primer resultado se redondea, y el segundo se trunca:
PRINT FIX (REAL.VALUE, 2) PRINT FIX (REAL.VALUE, 2, 1)

Esta es la salida del programa:


37.74 37.73

Funcin Fmt
Formatea los datos de la salida.

Sintaxis
Fmt (serie, formato)

serie es la serie que se va a formatear. Si serie es un valor nulo, se devuelve el valor nulo. formato es una expresin que define cmo se formatear la serie. Si el formato es nulo, la funcin Fmt falla. Para ver la sintaxis detallada, consulte Expresin de formato.

Captulo 7. Programacin BASIC

227

Comentarios
La expresin de formato proporciona un patrn para formatear la serie. Puede especificar: v La longitud del campo de salida v Un carcter de relleno para rellenar el campo v Si el campo est justificado a la derecha o a la izquierda v Un formato numrico, monetario o de fecha v Una mscara para que acte como plantilla del campo

Expresin de formato
Define cmo se formatea la serie.

Sintaxis
[longitud] [relleno] justificacin [edicin] [mscara ]

Longitud de salida
El nmero de posiciones de caracteres en el campo de salida se especifica utilizando el parmetro de longitud. Debe especificar longitud a menos que especifique mscara. (Puede especificar longitud y mscara.) v Si serie es menor que longitud, se rellena con caracteres de relleno. v Si serie es mayor que longitud, la serie se divide en campos mediante una marca de texto, CHAR(251), que se inserta cada longitud caracteres. Cada campo se rellena con caracteres de relleno hasta longitud.

Carcter de relleno
El parmetro fill se especifica para definir el carcter de relleno que se utiliza para rellenar el campo de salida al tamao especificado por length. El carcter de relleno predeterminado es un espacio. Si desea emplear un carcter numrico o las letras L, R, T o Q como carcter de relleno, deber escribirlo entre comillas simples.

Justificacin
La justificacin de la salida se especifica utilizando el parmetro de justificacin, que debe ser uno de los cdigos siguientes: L Justificar a al izquierda e interrumpir al final del campo. R Justificar a al derecha e interrumpir al final del campo. T Justificar a la izquierda e interrumpir en espacio (especialmente indicado para los campos de texto). U Justificar a la izquierda e interrumpir en longitud del campo.

Formatos numrico y monetario


El parmetro edit permite especificar cdigos que dan formato a una serie como una salida numrica o monetaria:

228

Gua del desarrollador de Server Job

Cdigo Descripcin n[m] n es un nmero del 0 al 9 que especifica el nmero de lugares decimales que se muestran. Si especifica 0 para n, el valor se redondea al entero ms prximo. La salida se rellena con ceros o se redondea al ensimo lugar decimal, si es necesario. m especifica cmo desescalar el valor: v Un valor de 0 desescala el valor segn la precisin actual. v Un valor del 1 al 9 desescala del valor en m menos la precisin actual. Si no especifica m, el valor predeterminado es 0. La precisin predeterminada es 4. $ F , Z E C D B L N J S Antepone a la salida numrica como prefijo un signo de dlar. Antepone a la salida numrica como prefijo un signo de franco. Inserta una coma para separar los millares. Suprime los ceros iniciales. Devuelve una serie vaca si el valor es 0. Delimita los nmeros negativos con corchetes angulares. Anexa cr a los nmeros negativos. Anexa db a los nmeros positivos. Anexa db a los nmeros negativos. Anexa el signo menos a los nmeros negativos. Suprime el signo menos en los nmeros negativos. Trunca un nmero, en lugar de redondearlo. Si est habilitado el soporte multilingstico, antepone el carcter de yen/yuan al valor.

Las opciones E, M, C, D y N definen representaciones numricas de uso monetario, mediante prefijos o sufijos. Si el soporte multilingstico est habilitado, estas opciones alteran temporalmente los convenios numricos y monetarios establecidos para el entorno local actual.

Salida enmascarada
Puede especificar una plantilla de formato para la salida utilizando el parmetro mscara. Por ejemplo, un patrn de formato 10L##-##-#### formatea la serie 31121999 en 31-12-1999. Una mscara puede incluir los caracteres que desee, pero estos caracteres tienen un significado especial: #n %n *n Especifica que los datos se visualizan en un campo de n caracteres de relleno. Si la expresin de formato no especifica un carcter de relleno, se utiliza un espacio. Especifica que los datos se visualizan en un campo de n ceros. Especifica que los datos se visualizan en un campo de n asteriscos.

Los dems caracteres seguidos de n insertan dichos caracteres en la salida n veces. Si desea utilizar nmeros o caracteres especiales como literales, debe aplicar la funcin de escape al carcter especial con una barra inclinada invertida ( \ ). mscara debe ir entre parntesis a efectos de claridad, en cuyo caso tambin debe escribir entre parntesis la mscara completa. Por ejemplo: ((###) ###-####)

Captulo 7. Programacin BASIC

229

La funcin Status devuelve el resultado de la edicin, de la siguiente manera: 0 1 2 El cdigo de edicin es satisfactorio. La serie o la expresin no es vlida. El cdigo de edicin no es vlido.

Formateo de nmeros exponenciales


Estos cdigos estn disponibles para formatear expresiones exponenciales: Q o QR Justificar a la derecha una expresin exponencial e interrumpir en longitud del campo. QL nEm n.m Z Justificar a la izquierda una expresin exponencial e interrumpir en longitud del campo. Si se usa con la justificacin Q, QR o QL, n es el nmero de dgitos fraccionarios, y m especifica el exponente. Cada uno puede ser un nmero de 0 a 9. Si se usa con la justificacin Q, QR o QL, n es el nmero de dgitos que preceden al separador decimal, y m es el nmero de dgitos fraccionarios. Cada uno puede ser un nmero de 0 a 9. Si se utiliza con el formato Q, solo se suprimen los ceros fraccionarios finales, y se suprime el exponente cero.

Ejemplos
Los siguientes ejemplos muestran el efecto de varios cdigos Fmt. En cada caso, el resultado se muestra como una serie, para que estn visibles todos los espacios significativos. Expresin de formato Valor formateado X = Fmt("1234567", "14R2") X = "1234567.00" X = Fmt("1234567", "14R2$," X = " $1,234,567.00" X = Fmt("12345", "14*R2$," X = "****$12,345.00" X = Fmt("1234567", "14L2" X = "1234567.00" X = Fmt("0012345", "14R") X = "0012345" X = Fmt("0012345", "14RZ") X = "12345" X = Fmt("00000", "14RZ") X = " " X = Fmt("12345", "140R") X = "00000000012345" X = Fmt("ONE TWO THREE", "10T") X = "ONE TWO ":T:"THREE" X = Fmt("ONE TWO THREE", "10R") X = "ONE TWO TH":T:"REE " X = Fmt("AUSTRALIANS", "5T") X = "AUSTR":T:"ALIAN":T:"S "

230

Gua del desarrollador de Server Job

X = Fmt("89", "R#####") X = " 89" X = Fmt("6179328323", "L###-#######") X = "617-9328323" X = Fmt("123456789", "L#3-#3-#3") X = "123-456-789" X = Fmt("123456789", "R#5") X = "56789" X = Fmt("67890", "R#10") X = " 67890" X = Fmt("123456789", "L#5") X = "12345" X = Fmt("12345", "L#10") X = "12345 " X = Fmt("123456", "R##-##-##") X = "12-34-56" X = Fmt("555666898", "20*R2$,") X = "*****$555,666,898.00" X = Fmt("DAVID", "10.L") X = "DAVID....." X = Fmt("24500", "10R2$Z") X = " $24500.00" X = Fmt("0.12345678E1", "9*Q") X = "*1.2346E0" X = Fmt("233779", "R") X = "233779" X = Fmt("233779", "R0") X = "233779" X = Fmt("233779", "R00") X = "2337790000" X = Fmt("233779", "R2") X = "233779.00" X = Fmt("233779", "R20") X = "2337790000.00" X = Fmt("233779", "R24") X = "233779.00" X = Fmt("2337.79", "R") X = "2337.79" X = Fmt("2337.79", "R0" X = "2338" X = Fmt("2337.79", "R00") X = "23377900" X = Fmt("2337.79", "R2") X = "2337.79"

Captulo 7. Programacin BASIC

231

X = Fmt("2337.79", "R20") X = "23377900.00" X = Fmt("2337.79", "R24") X = "2337.79" X = Fmt("2337.79", "R26") X = "23.38"

Funcin FmtDP
En la modalidad de soporte multilingstico, formatea los datos en las posiciones de visualizacin en lugar de por longitud de caracteres.

Sintaxis
FmtDP (serie, formato [, nombrecorrelacin] )

serie es la serie que se va a formatear. Si la serie es un valor nulo, se devuelve el valor nulo. Los caracteres que no se pueden correlacionar en la serie se supone que tienen una longitud de visualizacin de 1. formato es una expresin que define cmo se formatear la serie. Si el formato es nulo, FmtDP falla. Para ver la sintaxis detallada, consulte Expresin de formato. nombrecorrelacin es el nombre de una correlacin de juego de caracteres que se utiliza para el formateo. Si no se especifica el nombrecorrelacin, se utiliza el valor predeterminado actual para el proyecto o el trabajo.

Comentarios
FmtDP est especialmente indicada para su uso con juegos de caracteres de varios bytes. Si el soporte multilingstico no est habilitado, la funcin FmtDP funciona como una funcin Fmt equivalente.

Funcin Fold
Dobla las series para crear subseries.

Sintaxis
Fold (serie, longitud)

serie es la serie que se va a doblar. longitud es la longitud de las subseries en caracteres.

Comentarios
Utilice la funcin Fold para dividir una serie en un nmero de subseries separadas por marcas de campo. El valor de serie se separa en subseries de longitud igual o menor que longitud. El valor de serie se separa por los espacios en blanco, si es posible, y de lo contrario se separa en subseries de la longitud especificada. Si serie se evala como valor nulo, se devuelve el valor nulo. Si longitud es menor que 1, se devuelve una serie vaca. Si longitud es el valor nulo, Fold falla y el programa termina con un mensaje de error de tiempo de ejecucin.

232

Gua del desarrollador de Server Job

Ejemplo
A=Fold("This is a folded string", 5)

Establece A e:
ThisFis a FfoldeFdFstrinFg

Donde F es la marca de campo.

Funcin FoldDP
En la modalidad de soporte multilingstico, dobla las series para crear subseries utilizando las posiciones de visualizacin de los caracteres.

Sintaxis
FoldDP (serie, longitud [ , nombrecorrelacin ] )

serie es la serie que se va a doblar. longitud es la longitud de las subseries en posiciones de visualizacin. nombrecorrelacin es el nombre de una correlacin de juego de caracteres que se utiliza para el formateo. Si no se especifica el nombrecorrelacin, se utiliza el valor predeterminado actual para el proyecto o el trabajo.

Comentarios
La funcin FoldDP est especialmente indicada para su uso con juegos de caracteres de varios bytes. Si el soporte multilingstico no est habilitado, la funcin FoldDP funciona como una funcin Fold equivalente.

Sentencias For...Next
Cree un bucle de programa For...Next. No est disponible en las expresiones.

Sintaxis
For variable = inicio To fin [Step incremento] [sentencias.bucle] [Continue|Exit] [ {While | Until} condicin] [sentencias.bucle] [Continue] Next [variable]

For variable identifica el inicio del bucle. inicio To fin especifica el valor de inicio y de fin del contador que define cuntas veces se va a repetir el programa en bucle. Step incremento especifica la cantidad que aumenta el contador cuando se alcanza una sentencia Next. sentencias.bucle son las sentencias que se ejecutan en el bucle. Continue inicia la siguiente iteracin del bucle desde un punto en el bucle.
Captulo 7. Programacin BASIC

233

Exit sale del bucle desde un punto en el bucle. While...Continue es un bucle interior. Si condicin se evala en true, el bucle interior contina ejecutndose. Si condicin se evala en false, el bucle interior finaliza. La ejecucin del programa contina con la sentencia que figura a continuacin de la sentencia Next. Si condicin se evala como un valor nulo, la condicin es falsa. Until...Continue es un bucle interior. Si condicin se evala en false, el bucle interior contina ejecutndose. Cuando condicin se evala en true, el bucle finalizar y la ejecucin del programa continuar con la sentencia que figura tras la sentencia Next. condicin define la condicin para ejecutar un bucle While o Until. condicin puede ser una sentencia cualquiera que utilice una clusula Then...Else, pero la clusula Then...Else no se incluye. En su lugar, cuando la sentencia condicional ejecuta la clusula Else, condicin se evala en false; cuando la sentencia condicional ejecuta la clusula Then, condicin se evala en true. La clusula Locked no est soportada en este contexto. Next variable especifica el final del bucle. variable es la variable que se utiliza para definir el bucle con la sentencia For. Su uso es opcional, pero se recomienda para mejorar la legibilidad del programa, en concreto, si utiliza bucles anidados.

Comentarios
Puede utilizar varias clusulas While y Until en un bucle For...Next. Si anida bucles For...Next, cada bucle debe tener un nombre de variable exclusivo como contador. Si una sentencia Next no tiene ninguna sentencia For correspondiente, genera un error de compilador.

Ejemplo
Este ejemplo utiliza sentencias For...Next para crear una serie que contiene tres instancias de los nmeros del 5 al 1, donde cada serie est separada de la otra por un guin. El bucle externo utiliza una variable de contador de bucle que disminuye en 1 cada vez que pasa por el bucle.
String = "" ;* debe configurarse el valor inicial For Outer = 5 To 1 Step -1 ;* 5 repeticiones externas For Inner = 1 To 3 ;* 5 repeticiones internas String = String : Outer Next Inner String = String : "-" ;* se aade un guin Next Outer * La serie ser parecida a: 555-444-333-222-111-.

Sentencia Function
Identifica una funcin escrita por el usuario y especifica el nmero y los nombres de los argumentos que se le pasarn. No est disponible en las expresiones.

Sintaxis
Function [nombre] [ argumento1 [, argumento2] ...]

nombre es el nombre de la funcin escrita por el usuario y puede ser cualquier nombre de variable vlido. argumento1 y argumento2 son los nombres formales de los argumentos que se van a pasar a la funcin. Los nombres formales hacen referencia a los nombres reales de los parmetros que se utilizan en el programa de llamada (vase los ejemplos). Puede especificar hasta 254 argumentos. La funcin de

234

Gua del desarrollador de Server Job

llamada en el programa principal debe especificar el mismo nmero de argumentos que la sentencia Function.

Comentarios
Una funcin escrita por el usuario puede contener una sola sentencia Function, que debe ser la primera lnea no comentada. Un argumento adicional est oculto para que la funcin escrita por el usuario pueda utilizarlo para devolver un valor. La funcin escrita por el usuario conserva un argumento adicional para que se devuelva un valor mediante la sentencia Return. Si utiliza la sentencia Return en una funcin escrita por el usuario y no especifica un valor para devolver, se devuelve una serie vaca.

Llamada a la funcin escrita por el usuario


El programa de llamada debe contener una sentencia Deffun que defina la funcin escrita por el usuario antes de invocarla. La funcin escrita por el usuario debe estar catalogada en un catlogo local o el catlogo del sistema, o debe ser un registro del mismo archivo de objeto que el programa de llamada. Si la funcin definida por el usuario se invoca a s misma recursivamente, debe incluir una sentencia Deffun antes de la llamada recursiva. Por ejemplo:
Function Cut(expression, character) Deffun Cut (A1,A2) If character # Then ... Return (Cut (expression, character [2,999999])) End Else Return (expression) End End

Ejemplos
En este ejemplo, una funcin definida por el usuario denominada Short compara la longitud de dos argumentos y devuelve el ms corto:
Function Short(A,B) AL = Len(A) BL = Len(B) If AL < BL Then Result = A Else Result = B Return(Result)

En este ejemplo, se define una funcin llamada MyFunc con los nombres de argumento A, B y C. A continuacin, figura un ejemplo de la sentencia DefFun que declara y utiliza la funcin MyFunc. Los nombres de argumento A, B y C hacen referencia a los valores de X, Y y Z, lo que permite calcular el valor asignado a T.
Function MyFunc(A, B, C) Z = ... Return (Z) ... End DefFun MyFunc(X, Y, Z) T = MyFunc(X, Y, Z) End

Este ejemplo muestra cmo llamar a una funcin de transformacin denominada MyFunctionB desde otra funcin de transformacin denominada MyFunctionA:
Function MyFunctionA(Arg1) * Cuando hace referencia a una funcin escrita por el usuario que se mantiene en el * repositorio de DataStage, debe declararla como una funcin con el
Captulo 7. Programacin BASIC

235

* nmero correcto de argumentos y aadirle un prefijo "DSU.". Deffun MyFunctionB(A) Calling "DSU.MyFunctionB" Ans = MyFunctionB(Arg1) * Aada su propia transformacin al valor en Ans... ...

Funcin GetLocale
En la modalidad de soporte multilingstico, recupera el valor de entorno local actual para una determinada categora.

Sintaxis
$Include UNIVERSE.INCLUDE UVNLSLOC.H nombre = GetLocale (categora)

El valor de categora es una de las siguientes seales de inclusin: Seal Significado

UVLC$TIME Hora y fecha UVLC$NUMERIC Numrico UVLC$MONETARY Moneda UVLC$CTYPE Tipo de carcter UVLC$COLLATE Secuencia de ordenacin

Comentarios
GetLocale devuelve una de las siguientes seales de error si no puede recuperar el valor de entorno local: Error Significado

LCE$NOLOCALES El soporte multilingstico no est habilitado para IBM InfoSphere DataStage. LCE$BAD.CATEGORY No se reconoce la categora especificada.

Sentencia GoSub
Transfiere el control de programa a una subrutina interna. No est disponible en las expresiones.

Sintaxis
GoSub etiqueta.sentencia [ : ]

etiqueta.sentencia define dnde se inicia puede ser cualquier etiqueta vlida definida en el programa. : identifica el texto anterior como una etiqueta de sentencia para que el programa sea ms legible.

236

Gua del desarrollador de Server Job

Comentarios
Para transferir el control de nuevo al programa principal, utilice una sentencia Return o Return To: v Return transfiere el control de programa a la sentencia situada a continuacin de la sentencia GoSub. v Return To etiqueta transfiere el control de programa a una ubicacin en el programa especificada por etiqueta. Un programa puede llamar a una subrutina el nmero de veces que desee. Puede anidar subrutinas hasta 256 niveles.

Ejemplo
Este ejemplo utiliza GoSub para invocar una subrutina interna en una funcin de transformacin de IBM InfoSphere DataStage. La sentencia Return hace que se reanude la ejecucin en la sentencia que va inmediatamente despus de la sentencia GoSub. Es necesario utilizar GoTo tal como se muestra para que el control no fluya accidentalmente a la subrutina.
Function MyTransform(Arg1) * Utiliza slo una subrutina si la entrada es un nmero positivo: If Arg1 > 0 Then GoSub MyRoutine Reply = Arg1 GoTo ExitFunction ;* se utiliza GoTo para evitar un error MyRoutine: Arg1 = SQRT(Arg1) ;* utiliza la raz cuadrada Return ;* devuelve el control a la sentencia ExitFunction: Return(Reply)

Sentencia GoTo
Transfiere el control de programa a la sentencia especificada. No est disponible en las expresiones.

Sintaxis
GoTo etiqueta.sentencia [ : ]

etiqueta.sentencia especifica la sentencia de destino. : identifica el texto anterior como una etiqueta de sentencia para que el programa sea ms legible.

Comentarios
Si la sentencia referenciada es ejecutable, se ejecuta y el programa contina. Si no es ejecutable, el programa contina en la primera sentencia ejecutable despus de la referenciada.

Ejemplo
Este ejemplo utiliza la sentencia GoTo para ramificarse a las etiquetas de lnea de una rutina. Tenga en cuenta que este tipo de proceso es a menudo ms claro que la utilizacin de una construccin Begin Case.
Function MyTransform(Arg1) * Evala el argumento y se ramifica a la etiqueta correspondiente. If Arg1 = 1 Then GoTo Label1 Else GoTo Label2 Label1: Reply = "A" GoTo LastLabel

Captulo 7. Programacin BASIC

237

Label2: Reply = "B" LastLabel: Return(Reply)

Funcin Iconv
Convierte una serie al formato de almacenamiento interno.

Sintaxis
Iconv (serie, cdigo [ @VM cdigo ] ... )

serie se evala como la serie que se va a convertir. Si serie es un valor nulo, se devuelve el valor nulo. cdigo es un cdigo de conversin y debe escribirse entre comillas. Varios cdigos de conversin deben ir separados por marcas de valor. Si hay varios cdigos, se aplican de izquierda a derecha. El segundo cdigo convierte la salida del primero, etc. Si cdigo es un valor nulo, genera un error de tiempo de ejecucin.

Comentarios
La funcin Status devuelve el resultado de la conversin, de la siguiente manera: 0 1 2 3 La conversin ha sido satisfactoria. La serie no era vlida. Se devuelve una serie vaca, a menos que serie fuera un valor nulo, en cuyo caso se devuelve un valor nulo. La conversin no era vlida. La conversin ha sido satisfactoria, pero puede que los datos de entrada no sean vlidos, por ejemplo, una fecha que no existe como, por ejemplo, el 31 de septiembre.

Ejemplos
Conversiones ASCII
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MY (ASCII): Expresin de conversin Valor interno X = Iconv("ABCD", "MY") X = 41424344 X = Iconv("0123", "MY") X = 30313233

Conversiones de fecha
Los siguientes ejemplos muestran el efecto de varios cdigos de conversin D (Fecha): Expresin de conversin Valor interno X = Iconv("31 DEC 1967", "D") X = 0

238

Gua del desarrollador de Server Job

X = Iconv("27 MAY 97", "D2") X = 10740 X = Iconv("05/27/97", "D2/") X = 10740 X = Iconv("27/05/1997", "D/E") X = 10740 X = Iconv("1997 5 27", "D YMD") X = 10740 X = Iconv("27 MAY 97", "D DMY") X = 10740 X = Iconv("5/27/97", "D/MDY") X = 10740 X = Iconv("27 MAY 1997", "D DMY") X = 10740 X = Iconv("97 05 27", "DYMD") X = 10740

Conversiones de grupo
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin G (Grupo): Expresin de conversin Valor interno X = Iconv("27.05.1997", "G1.2") X = "05.1997" X = Iconv("27.05.1997", "G.2") X = "27.05"

Conversiones de longitud
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin L (Longitud): Expresin de conversin Valor interno X = Iconv("QWERTYUIOP", "L0") X = 10 X = Iconv("QWERTYUIOP", "L7") X = "" X = Iconv("QWERTYU", "L7") X = "QWERTYU" X = Iconv("QWERTYUOP", "L3,5") X = "" X = Iconv("QWER", "L3,5") X = "QWER"

Conversiones de caracteres enmascarados


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin de caracteres enmascarados (MCA, MC/A, MCD, MCL, MCN, MC/N, MCP, MCT, MCU y MCX):

Captulo 7. Programacin BASIC

239

Expresin de conversin Valor interno X = Iconv("John Smith 1-234", "MCA") X = "JohnSmith" X = Iconv("John Smith 1-234","MC/A") X = " 1-234" X = Iconv("4D2", "MCD") X = "1234" X = Iconv("4D2", "MCDX") X = "1234" X = Iconv("John Smith 1-234", "MCL") X = "john smith 1-234" X = Iconv("John Smith 1-234", "MCN") X = "1234" X = Iconv("John Smith 1-234", "MC/N") X = "John Smith -" X = Iconv("John^CSmith^X1-234", "MCP") X = "John.Smith.1-234" X = Iconv("john SMITH 1-234", "MCT") X = "John Smith 1-234" X = Iconv("john smith 1-234", "MCU") X = "JOHN SMITH 1-234" X = Iconv("1234", "MCX") X = "4D2" X = Iconv("1234", "MCXD") X = "4D2"

Conversiones decimales enmascaradas


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MD (Decimal enmascarada): Expresin de conversin Valor interno X = Iconv("9876.54", "MD2") X = 987654 X = Iconv("987654", "MD0") X = 987654 X = Iconv("$1,234,567.89", "MD2$,") X = 123456789 X = Iconv("123456.789", "MD33") X = 123456789 X = Iconv("12345678.9", "MD32") X = 1234567890 X = Iconv("F1234567.89", "MD2F") X = 123456789 X = Iconv("1234567.89cr", "MD2C") X = -123456789

240

Gua del desarrollador de Server Job

X = Iconv("1234567.89 ", "MD2D") X = 123456789 X = Iconv("1,234,567.89 ", "MD2,D") X = 123456789 X = Iconv("9876.54", "MD2-Z") X = 987654 X = Iconv("$####1234.56", "MD2$12#") X = 123456 X = Iconv("$987.654 ", "MD3,$CPZ") X = 987654 X = Iconv("####9,876.54", "MD2,ZP12#") X = 987654

Conversiones a izquierda y derecha enmascarada


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin ML y MR (Izquierda y derecha enmascarada): Expresin de conversin Valor interno X = Iconv("$1,234,567.89", "ML2$,") X = 123456789 X = Iconv(".123", "ML3Z") X = 123 X = Iconv("123456.789", "ML33") X = 123456789 X = Iconv("12345678.9", "ML32") X = 1234567890 X = Iconv("1234567.89cr", "ML2C") X = -123456789 X = Iconv("1234567.89db", "ML2D") X = 123456789 X = Iconv("1234567.89-", "ML2M") X = -123456789 X = Iconv("<1234567.89>", "ML2E") X = -123456789 X = Iconv("1234567.89**", "ML2(*12)") X = 123456789 X = Iconv("**1234567.89", "MR2(*12)") X = 123456789

Conversiones de numerales
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin NR (Numeral romano): Expresin de conversin Valor interno X = Iconv("mcmxcvii", "NR") X = 1997
Captulo 7. Programacin BASIC

241

X = Iconv("MCMXCVmm", "NR") X = 1997000

Conversiones de coincidencia de patrn


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin P (Coincidencia de patrn): Expresin de conversin Valor interno X = Iconv("123456789", "P(3N-3A-3X);(9N)") X = "123456789" X = Iconv("123-ABC-A7G", "P(3N-3A-3X);(9N)") X = "123-ABC-A7G" X = Iconv("123-45-6789", "P(3N-2N-4N)") X = "123-45-6789"

Conversiones Radix
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MX, MO y MB (Radix): Expresin de conversin Valor interno X = Iconv("400", "MX") X = 1024 X = Iconv("434445", "MX0C") X = "CDE" X = Iconv("2000", "MO") X = 1024 X = Iconv("103104105", "MO0C") X = "CDE" X = Iconv("10000000000", "MB") X = 1024 X = Iconv("010000110100010001000101", "MB0C") X = "CDE"

Conversiones de comprobacin de rango


El siguiente ejemplo muestra el efecto del cdigo de conversin R (Comprobacin de rango): Expresin de conversin Valor interno X = Iconv("123", "R100,200") X = 123

Conversiones Soundex
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin S (Soundex): Expresin de conversin Valor interno X = Iconv("GREEN", "S") X = "G650"

242

Gua del desarrollador de Server Job

X = Iconv("greene", "S") X = "G650" X = Iconv("GREENWOOD", "S") X = "G653" X = Iconv("GREENBAUM", "S") X = "G651"

Conversiones de hora
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MT (Hora): Expresin de conversin Valor interno X = Iconv("02:46", "MT") X = 9960 X = Iconv("02:46:40am", "MTHS") X = 10000 X = Iconv("02:46am", "MTH") X = 9960 X = Iconv("02.46", "MT.") X = 9960 X = Iconv("02:46:40", "MTS") X = 10000

Sentencias If...Else
Ejecutan una o varias sentencias de manera condicional. Puede utilizar una sintaxis de una sola lnea o varias lneas en un bloque. No est disponible en las expresiones.

Sintaxis
If condicin Else sentencia If condicin Else sentencias End

condicin es un valor numrico o una comparacin cuyo valor determina el flujo del programa. Si la condicin es false, se ejecutan las sentencias. sentencias son las sentencias que se ejecutan si condicin es false.

Comentarios
Si desea ejecutar ms de una sentencia cuando condicin es false, utilice la sintaxis multilnea.

Ejemplo
Function MyTransform(Arg1, Arg2, Arg3) * La clusula Else ocupa slo una lnea: Reply = 0 ;* valor predeterminado If Arg1 Matches "A..." Else Reply = 2 * Clusula Else multilnea: If Len(arg1) > 10 Else Reply += 2
Captulo 7. Programacin BASIC

243

Reply = (Arg2 - 1) * Reply End * Otro estilo de la clusula Else multilnea: If Len(Arg1) > 20 Else Reply += 4 Reply = (Arg3 - 1) * Reply End Return(Reply)

Sentencias If...Then...Else
Defina varios bloques de sentencias y las condiciones que determinan qu bloque se ejecuta. Puede utilizar una sintaxis de una sola lnea o varias lneas en un bloque. No est disponible en las expresiones.

Sintaxis
If condicin Then sentencias [Else sentencias] If condicin Then sentencias End [Else sentencias

End]

condicin es un valor numrico o una comparacin cuyo valor determina el flujo del programa. Si condicin es true, se utiliza la clusula Then. Si condicin es false, se utiliza la clusula Else. Si condicin es un valor nulo, se evala en false. sentencias son las sentencias que se ejecutan dependiendo del valor de condicin.

Comentarios
Puede anidar sentencias If...Then...Else. Si las sentencias Then o Else estn escritas en varias lneas, deber emplear una sentencia End como la ltima sentencia.

Ejemplo
Function MyTransform(Arg1, Arg2, Arg3) * Las clusulas Then y Else ocupan una lnea cada una: If Arg1 Matches "A..." Then Reply = 1 Else Reply = 2 * Clusulas multilnea: If Len(arg1) > 10 Then Reply += 1 Reply = Arg2 * Reply End Else Reply += 2 Reply = (Arg2 - 1) * Reply End * Otro estilo de las clusulas multilnea: If Len(Arg1) > 20 THEN Reply += 2 Reply = Arg3 * Reply End Else Reply += 4 Reply = (Arg3 - 1) * Reply End Return(Reply)

244

Gua del desarrollador de Server Job

Sentencias If...Then
Ejecutan una o varias sentencias de manera condicional. Puede utilizar una sintaxis de una sola lnea o varias lneas en un bloque. No est disponible en las expresiones.

Sintaxis
If condicin Then sentencia If condicinThen sentenciasEnd

condicin es un valor numrico o una comparacin cuyo valor determina el flujo del programa. Si la condicin es true, se ejecutan las sentencias. sentencias son las sentencias que se ejecutan si la condicin es true.

Comentarios
Si desea ejecutar ms de una sentencia cuando condicin es true, utilice la sintaxis multilnea.

Ejemplo
Este ejemplo ilustra las distintas formas de la construccin If...Then que pueden utilizarse en una rutina:
Function MyTransform(Arg1, Arg2, Arg3) * La clusula Then ocupa slo una lnea: Reply = 0 ;* valor predeterminado If Arg1 Matches "A..." Then Reply = 1 * Clusula Then multilnea: If Len(arg1) > 10 Then Reply += 1 Reply = Arg2 * Reply End * Otro estilo de la clusula Then multilnea: If Len(Arg1) > 20 THEN Reply += 2 Reply = Arg3 * Reply End Return(Reply)

Operador If...Then...Else
Asigna un valor que cumple las condiciones especificadas. Operador If...Then...Else

Sintaxis
variable = If condicin Then expresin Else expresin

variable es la variable que se asigna. If condicin define la condicin que determina qu valor se asigna. Then expresin define el valor que se asigna si la condicin es true.
Captulo 7. Programacin BASIC

245

Else expresin define el valor que se asigna si la condicin es false.

Comentarios
El operador If es la nica forma de la construccin If...Then...Else que puede utilizarse en una expresin.

Ejemplo
Tenga en cuenta que la clusula Else es necesaria.
* Devolver A o B dependiendo del valor de Column1: If Column1 > 100 Then "A" Else "B" * Aadir 1 o 2 al valor en Column2 dependiendo de lo que haya en * Column3, y devolverlo: Column2 + (If Column3 Matches "A..." Then 1 Else 2)

Funcin Index
Devuelve la posicin inicial de una subserie.

Sintaxis
Index (serie, subserie, instancia)

serie es la serie o la expresin que contiene la subserie. Si serie es un valor nulo, se devuelve 0. subserie es la subserie que desea encontrar. Si subserie es una serie vaca, se devuelve 1. Si subserie es un valor nulo, se devuelve 0. instancia especifica qu instancia de la subserie se va a ubicar. Si no se encuentra la instancia, se devuelve 0. Si la instancia es un valor nulo, genera un error de tiempo de ejecucin.

Ejemplos
Los siguientes ejemplos muestran varias formas de buscar la posicin de una subserie en una serie:
MyString = "P1234XXOO1299XX00P1" Position = Index(MyString, 1, 2) * El cdigo anterior devuelve el ndice Position = Index(MyString, "XX", 2) * El cdigo anterior devuelve el ndice * (14). Position = Index(MyString, "xx", 2) * El cdigo anterior devuelve 0, ya que Position = Index(MyString, "XX", 3) * El cdigo anterior devuelve 0, ya que * tercera aparicin de la subserie "XX"

del segundo carcter "1" (10). inicial de la segunda subserie "XX" no se produce la subserie "xx". no se puede encontrar la *.

Funcin InMat
Recupera las dimensiones de una matriz o determina si una sentencia Dimension ha fallado debido a que la memoria es insuficiente. No est disponible en las expresiones.

Sintaxis
InMat [(matriz)]

246

Gua del desarrollador de Server Job

matriz es el nombre de la matriz cuyas dimensiones desea recuperar.

Comentarios
Si especifica una matriz, InMat devuelve las dimensiones de la matriz. Si no especifica una matriz, InMat devuelve 1 si la sentencia Dimension anterior ha fallado debido a la falta de memoria disponible.

Ejemplo
Este ejemplo muestra cmo probar si una sentencia Dimension ha asignado suficiente memoria:
Dim MyArray(2000) If InMat() = 1 Then Call DSLogFatal("Could not allocate array", "MyRoutine") End

Funcin Int
Devuelve la parte entera de una expresin numrica.

Sintaxis
Int (expresin)

expresin es una expresin numrica. Despus de la evaluacin, la parte de fraccin del valor se trunca y se devuelve la parte entera. Si la expresin es un valor nulo, se devuelve un nulo.

Ejemplo
Este ejemplo muestra la parte entera de una expresin devuelta por la funcin Int:
MyValue = 2.3 IntValue = Int(MyValue) IntValue = Int(-MyValue) IntValue = Int(MyValue / 10) ;* la respuesta es 2 ;* la respuesta es -2 ;* la respuesta es 0

Funcin IsNull
Prueba si una variable contiene un valor nulo.

Sintaxis
IsNull (variable)

variable es la variable que se prueba. Si variable contiene un valor nulo, se devuelve 1; de lo contrario, se devuelve 0.

Comentarios
Esta es la nica manera de probar si es un valor nulo, ya que el valor nulo no es igual a ningn valor, incluido l mismo.

Ejemplo
Este ejemplo muestra cmo probar una expresin que se est estableciendo en el valor nulo:

Captulo 7. Programacin BASIC

247

MyVar = @Null ;* establece la variable en el valor nulo If IsNull(MyVar * 10) Then * Ser true, ya que toda operacin aritmtica que incluya un valor nulo * da como resultado un valor nulo. End

Funcin Left
Extrae una subserie del principio de una serie.

Sintaxis
Left (serie, n)

serie es la serie que contiene la subserie. Si serie es un valor nulo, se devuelve el valor nulo. n es el nmero de caracteres que se extraen del principio de la serie. Si n es un valor nulo, genera un error de tiempo de ejecucin.

Ejemplos
Estos ejemplos extraen los tres caracteres ms a la izquierda de una serie:
MyString = "ABCDEF" MySubStr = Left(MyString, 3) MySubStr = Left("AB", 3) ;* la respuesta es "ABC" ;* la respuesta es "AB"

Funcin Len
Devuelve el nmero de caracteres de una serie.

Sintaxis
Len (serie)

serie es la serie cuyos caracteres se cuentan. Se cuentan todos los caracteres, incluidos los espacios y los espacios en blanco finales. Si serie es un valor nulo, se devuelve 0.

Ejemplos
Estos ejemplos determinan la longitud de una serie o de un nmero cuando se expresa como una serie:
MyStr = "PORTLAND, OREGON" StrLen = Len(MyStr) ;* la respuesta es 16 NumLen = Len(12345.67) ;* la respuesta es 8 (observe ;* el separador decimal)

Funcin LenDP
En la modalidad de soporte multilingstico, devuelve la longitud de una serie en posiciones de visualizacin.

Sintaxis
LenDP (serie [, nombrecorrelacin ])

248

Gua del desarrollador de Server Job

serie es la serie que se va a medir. Los caracteres que no se pueden correlacionar en la serie se supone que tienen una longitud de visualizacin de 1. nombrecorrelacin es el nombre de la correlacin que define el juego de caracteres que se utiliza en la serie. Si se omite el nombrecorrelacin, se utiliza la correlacin de juego de caracteres predeterminada para el proyecto o el trabajo.

Comentarios
Si el soporte multilingstico no est habilitado, esta funcin funciona como la funcin Len y devuelve el nmero de caracteres de la serie.

Funcin Ln
Calcula el logaritmo natural del valor de una expresin, empleando la base "e".

Sintaxis
Ln (expresin)

expresin es la expresin numrica que se evala. Si la expresin es 0 o un valor negativo, se devuelve 0 y se emite un aviso. Si la expresin es un valor nulo, se devuelve un nulo.

Comentarios
El valor de "e" es aproximadamente 2,71828.

Ejemplo
Este ejemplo muestra cmo grabar una transformacin para convertir un nmero en su logaritmo de base 10 utilizando la funcin Ln:
Function Log10(Arg1) If Not(Num(Arg1)) Then Call DSTransformError("Non-numeric ":Arg1, "Log10") Ans = 0 ;* o un valor predeterminado adecuado End Else Ans = Ln(Arg1) / Ln(10) End Return(Ans)

Sentencia LOCATE
Utilice una sentencia LOCATE para buscar en expresin en matriz.dinmica y devolver un valor con una de las indicaciones siguientes: v La ubicacin en que se ha encontrado expresin en matriz.dinmica. v La ubicacin en que se debe insertar expresin en matriz.dinmica si no se ha encontrado. La bsqueda puede iniciarse en cualquier punto de matriz.dinmica.

Sintaxis
LOCATE expresin IN matriz.dinmica [ < nmcampo [ ,nmvalor] > ] [,inicio] [BY sec] SETTING variable {THEN sentencias [ELSE sentencias] | ELSE sentencias}

Captulo 7. Programacin BASIC

249

El valor de expresin se evala como la serie que se buscar en matriz.dinmica. Si expresin o matriz.dinmica se evala como valor nulo, variable se establece en 0 y se ejecutan las sentencias ELSE. Si expresin y matriz.dinmica se evalan como series vacas, variable se establece en 1 y se ejecutan las sentencias THEN. Los valores de nmcampo, nmvalor y nmsubvalor son expresiones de delimitador y especifican: v La ubicacin en que se debe iniciar la bsqueda en matriz.dinmica. v El tipo de elemento que se busca. El valor de inicio se evala como un nmero que especifica el campo, valor o subvalor a partir del cual se debe iniciar la bsqueda. Las expresiones de delimitador especifican el nivel de bsqueda, e inicio especifica la posicin inicial de la bsqueda. Si alguna expresin de delimitador o inicio se evala como valor nulo, la sentencia LOCATE falla y el programa termina con un mensaje de error de tiempo de ejecucin. En variable se almacena el ndice de expresin. El valor de variable devuelve un nmero de campo, valor o subvalor, segn las expresiones de delimitador empleadas. El valor de variable se establece en un nmero que representa uno de los elementos siguientes: v El ndice del elemento que contiene expresin, si se encuentra ese elemento. v Un ndice que se puede utilizar en una funcin INSERT para crear un elemento nuevo con el valor especificado por expresin.

Comentarios
Durante la bsqueda, los campos se procesan como campos de un solo valor aunque contengan marcas de valor o subvalor. Los valores se procesan como valores nicos, aunque contengan marcas de subvalor. La bsqueda se detiene cuando se da una de las condiciones siguientes: v Se encuentra un campo que contiene expresin. v Se llega al final de la matriz dinmica. v Se encuentra un campo superior o inferior, segn se haya especificado en sec. Si los elementos de la bsqueda estn ordenados en una de las secuencias ASCII ascendentes o descendentes que figuran a continuacin, puede utilizar la expresin BY sec para finalizar la bsqueda. La bsqueda finaliza en la posicin donde se debe insertar expresin para mantener la secuencia ASCII, en lugar de al final de la lista de elementos especificados. Utilice los valores siguientes de sec para describir la secuencia ASCII de la bsqueda: "AL" o "A" Ascendente y justificada a la izquierda (ordenacin alfanumrica estndar) "AR" Ascendente y justificada a la derecha

"DL" o "D" Descendente y justificada a la izquierda (ordenacin alfanumrica estndar) "DR" Descendente y justificada a la derecha

La especificacin de sec no vuelve a ordenar los elementos de matriz.dinmica; indica las condiciones de terminacin de la bsqueda. Si se utiliza una expresin seq y los elementos no se encuentran en la secuencia indicada por seq, es posible que no se encuentre un elemento con el valor de expresin. Si sec se evala como valor nulo, la sentencia falla y el programa termina.

250

Gua del desarrollador de Server Job

Las sentencias ELSE se ejecutan si no se encuentra expresin. El formato de la sentencia ELSE es el mismo que se utiliza en la sentencia IF...THEN. Si el soporte multilingstico est habilitado, la sentencia LOCATE con una expresin BY sec utiliza el convenio de clasificacin especificado por el entorno local actual.

Ejemplos
Se muestra una marca de campo junto a F, se muestra una marca de valor junto a V y se muestra una marca de subvalor junto a S.
Q=X:@SM:"$":@SM:Y:@VM:Z:@SM:4:@SM:2:@VM:B:@VM PRINT "Q= ":Q LOCATE "$" IN Q <1> SETTING WHERE ELSE PRINT ERROR PRINT "WHERE= ",WHERE LOCATE "$" IN Q <1,1> SETTING HERE ELSE PRINT ERROR PRINT "HERE= ", HERE NUMBERS=122:@FM:123:@FM:126:@FM:130:@FM PRINT "BEFORE INSERT, NUMBERS= ",NUMBERS NUM= 128 LOCATE NUM IN NUMBERS <2> BY "AR" SETTING X ELSE NUMBERS = INSERT(NUMBERS,X,0,0,NUM) PRINT "AFTER INSERT, NUMBERS= ",NUMBERS END

Esta es la salida del programa:


Q= XS$SYVZS4S2VBV ERROR WHERE= 5 HERE= 2 BEFORE INSERT, NUMBERS= 122F123F126F130FAFTER INSERT, NUMBERS=

122F128F123F126F130F

Sentencias Loop...Repeat
Define un bucle de programa. No est disponible en las expresiones.

Sintaxis
Loop [sentencias] [Continue | Exit] [While | Until condicin Do] [sentencias] [Continue | Exit] Repeat

Loop define el inicio del bucle de programa. sentencias son las sentencias que se ejecutan en el bucle. Continue especifica que el bucle actual se interrumpe y se reinicia en este punto. Exit especifica que el programa abandona el bucle actual. While condicin Do especifica que el bucle se repite siempre que condicin sea true. Cuando condicin es false, el bucle se detiene y la ejecucin del programa contina con la sentencia que figura tras la sentencia Repeat. Si condicin es un valor nulo, se supone que es false.

Captulo 7. Programacin BASIC

251

Until condicin Do especifica que el bucle se repite siempre que condicin sea false. Cuando condicin es true, el bucle se detiene y la ejecucin del programa contina con la sentencia que figura tras la sentencia Repeat. Si condicin es un valor nulo, se supone que es false. Repeat define el fin del bucle.

Comentarios
Puede utilizar varias clusulas While y Until en un bucle Loop...Repeat. Puede anidar bucles Loop...Repeat. Si una sentencia Repeat no tiene ninguna sentencia Loop correspondiente, genera un error de compilador.

Ejemplo
Este ejemplo muestra cmo pueden utilizarse las sentencias Loop...Repeat. La sentencia Loop...Repeat interior hace el bucle 10 veces, establece el valor del distintivo en false y sale prematuramente utilizando la sentencia Exit. El bucle exterior sale inmediatamente despus de comprobar el valor del distintivo.
Check = @True Counter = 0 ;* inicializa variables Loop ;* bucle exterior Loop While Counter < 20 ;* bucle interior Counter += 1 ;* contador de incrementos If Counter = 10 Then ;* si la condicin es True... Check = @False ;* establece el valor del distintivo en False... Exit ;* y sale del bucle interior. End Repeat Until Not(Check) ;* sale del bucle exterior cuando la comprobacin se establece en False Repeat

Sentencia Mat
Asigna valores a los elementos de una matriz. No est disponible en las expresiones.

Sintaxis
Mat matriz = expresin

matriz es una matriz denominada y dimensionada a la que desea asignar valores. expresin puede ser un valor nico o el nombre de una matriz dimensionada. Si expresin es un valor nico, el valor se asigna a todos los elementos de la matriz. Si es una matriz, los valores se asignan a la matriz, elemento a elemento, independientemente de si coinciden las dimensiones de las dos matrices. Los valores excedentes se descartan; los elementos excedentes permanecen sin asignar.

Comentarios
No puede utilizar la sentencia Mat para asignar valores a elementos especficos de una matriz.

Ejemplos
Este ejemplo muestra cmo asignar el mismo valor a todos los elementos de una matriz:
Dim MyArray(10) Mat MyArray = "Empty"

Este ejemplo muestra cmo asignar los elementos de una matriz a los de otra matriz:

252

Gua del desarrollador de Server Job

Dim Array1(4) Dim Array2(2,2) For n = 1 To 4 Array1(n) = n ;* Array1(1) = 1, Array1(2) = 2, etc. Next n Mat Array2 = Mat Array1 * Los resultados son: Array2(1,1) = 1, Array2(1,2) = 2 * Array2(2,1) = 3, Array2(2,2) = 4

Funcin MatchField
Busca en una serie y devuelve la parte de la misma que coincide con un elemento de patrn.

Sintaxis
MatchField (serie, patrn, elemento)

serie es la serie que en la que se realiza la bsqueda. Si la serie no coincide con ningn patrn o es un valor nulo, se devuelve una serie vaca. patrn es uno o varios elementos de patrn que describen la serie, y puede ser cualquiera de los cdigos de patrn utilizados por el operador Match. Si el patrn es un valor nulo, se devuelve una serie vaca. elemento es un nmero, n, que especifica que se devuelve la parte de la serie que coincide con el ensimo elemento del patrn. Si el elemento es un valor nulo, genera un error de tiempo de ejecucin.

Comentarios
patrn debe contener elementos que describen todos los caracteres de la serie. Por ejemplo, la sentencia siguiente devuelve una serie vaca porque el patrn no cubre la subserie "AB" al final de la serie:
MatchField ("XYZ123AB", "3X3N", 1)

La siguiente sentencia describe la serie completa y devuelve un valor "XYZ", que es 3X, la subserie que coincide con el primer elemento del patrn:
MatchField ("XYZ123AB", "3X3N...", 1)

Ejemplos
Q se evala en BBB:
Q = MatchField("AA123BBB9","2A0N3A0N",3)

zip se evala en 01234:


addr = 20 GREEN ST. NATICK, MA.,01234 zip = MatchField(ADDR,"0N0X5N",3)

col se evala en BLUE:


inv = PART12345 BLUE AU col = MatchField(INV,"10X4A3X",2)

En los ejemplos siguientes, la serie no coincide con el patrn y se devuelve una serie vaca:
XYZ=MatchField(ABCDE1234,"2N3A4N",1) XYZ=ABC=MatchField(1234AB,"4N1A",2) ABC=

Captulo 7. Programacin BASIC

253

Funcin Mod
Devuelve el resto de una operacin de divisin.

Sintaxis
Mod (dividendo, divisor)

dividendo es el nmero que se va a dividir. Si dividendo es un valor nulo, se devuelve el valor nulo. divisor es el nmero por el que se divide. divisor no puede ser 0. Si divisor es un valor nulo, se devuelve el valor nulo.

Comentarios
La funcin Mod calcula el resto mediante la frmula:
Mod (X, Y) = X - (Int (X / Y) * Y)

Utilice la funcin Div para devolver el resultado de una operacin de divisin.

Ejemplos
Los siguientes ejemplos muestran el uso de la funcin Mod:
Remainder = Mod(100, 25) el resultado es 0 Remainder = Mod(100, 30) ;* ;* el resultado es 10

Sentencia Nap
Detiene un programa el nmero de milisegundos especificado. No est disponible en las expresiones.

Sintaxis
Nap [milisegundos]

milisegundos es el nmero de milisegundos que se detiene. El valor predeterminado es 1. Si milisegundos es un valor nulo, la sentencia Nap se omite.

Comentarios
No utilice la sentencia Nap en una transformacin, ya que ralentizar la ejecucin del trabajo de IBM InfoSphere DataStage.

Ejemplo
Este ejemplo muestra la sentencia Nap que se invoca desde una rutina anterior/posterior de InfoSphere DataStage para sondear la existencia de un recurso, con un breve intervalo de espera entre los sondeos:
If NumTimesWaited < RepeatCount Then NumTimesWaited += 1 Nap 500 ;* esperar 500 milisegundos = 1/2 segundo End

254

Gua del desarrollador de Server Job

Funcin Neg
Devuelve el inverso de un nmero.

Sintaxis
Neg (nmero)

nmero es el nmero que desea invertir.

Ejemplo
El siguiente ejemplo muestra un uso de la funcin Neg, equivalente al operador unario menos:
MyNum = 10 * La siguiente lnea puede ser ms clara que la construccin * equivalente, que es: -(MyNum + 75) / 100 MyExpr = Neg(MyNum + 75) / 100

Funcin Not
Invierte el resultado lgico de una expresin.

Sintaxis
Not (expresin)

expresin es la expresin cuyo resultado se invierte. Si la expresin es true, se devuelve 0; si es false, se devuelve 1. Si la expresin es un valor nulo, se devuelve un nulo.

Comentarios
La expresin es false si se evala en 0 o si es una serie vaca. Para los dems valores (excepto el valor nulo), es true.

Ejemplos
A continuacin, se proporcionan algunos ejemplos del uso de la funcin Not para invertir el valor real de las expresiones:
Value1 = 5 Value2 = 5 Boolean = Not(Value1 - Value2);* Booleano = 1, es decir, True Boolean = Not(Value1 + Value2);* Booleano = 0, es decir, False Boolean = Not(Value1 = Value2);* Booleano = 0, es decir, False

Sentencia Null
No realiza ninguna accin ni genera ningn cdigo de objeto.

Sintaxis
Nula

Comentarios
La sentencia Null acta como una va muerta en un programa. Por ejemplo, puede emplearla con la clusula Else si no desea que se efecte ninguna operacin cuando se ejecute la clusula Else.
Captulo 7. Programacin BASIC

255

Ejemplo
El siguiente ejemplo muestra el uso de la sentencia Null para dejar claro que una determinada ramificacin de una sentencia Case no realiza ninguna accin:
Begin Case Case Arg1 = A * ... realizar alguna accin para el primer caso. Case Arg1 = B * ... realizar alguna accin para el segundo caso. Case @True * ... en los dems casos, no realizar ninguna accin. Null End Case

Funcin Num
Determina si una serie es numrica. Si el soporte multilingstico est habilitado, el resultado de esta funcin depende del valor de entorno local actual del convenio Numeric.

Sintaxis
Num (expresin)

expresin es la expresin que se prueba. Si la expresin es un nmero, una serie numrica o una serie vaca, se devuelve un valor 1. Si es un valor nulo, se devuelve un valor nulo; de lo contrario, se devuelve 0.

Comentarios
Las series que contienen puntos utilizados como separadores decimales se consideran numricas. No obstante, las series que contienen otros caracteres utilizados para formatear cantidades numricas o monetarias como, por ejemplo, comas, signos de dlar, etc., no se consideran numricas.

Ejemplos
Los siguientes ejemplos muestran la funcin Num que se utiliza para determinar si una variable contiene un nmero:
Arg1 = "123.45 Boolean = Num(Arg1) Arg2 = "Section 4" Boolean = Num(Arg2) Arg3 = " " Boolean = Num(Arg3) Arg4 = "" Boolean = Num(Arg4) ;* devuelve 1, es decir, True ;* devuelve 0, es decir, False ;* False (el espacio no es un carcter numrico) ;* True (la serie vaca es numrica)

Funcin Oconv
Convierte una expresin a un formato de salida.

Sintaxis
Oconv (expresin, conversin [@VM conversin] ...)

expresin es una serie almacenada en formato interno que desea convertir a un formato de salida. Si la expresin es un valor nulo, se devuelve un nulo.

256

Gua del desarrollador de Server Job

conversin son uno o varios cdigos de conversin que especifican cmo se formatea la serie. Separe los distintos cdigos con una marca de valor. Si conversin es un valor nulo, genera un error de tiempo de ejecucin.

Comentarios
Si especifica varios cdigos, se aplican de izquierda a derecha. El primer cdigo se aplica a la expresin, el siguiente cdigo se aplica al resultado de la primera conversin, y as sucesivamente. La funcin Status utiliza los siguientes valores para indicar el resultado de una funcin Oconv: 0 1 2 La conversin ha sido satisfactoria. Se ha pasado una serie no vlida a la funcin Oconv. O bien se ha devuelto la serie original o, si la serie era un valor nulo, se ha devuelto un valor nulo. La conversin no era vlida.

Ejemplos
Conversiones ASCII
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MY (ASCII). Expresin de conversin Valor externo X = Oconv("41424344", "MY") X = "ABCD" X = Oconv("30313233", "MY") X = "0123"

Conversiones de fecha
Los siguientes ejemplos muestran el efecto de varios cdigos de conversin D (Fecha): Expresin de conversin Valor externo X = Oconv(0, "D") X = "31 DEC 1967" X = Oconv(10740, "D2") X = "27 MAY 97" X = Oconv(10740, "D2/") X = "05/27/97" X = Oconv(10740, "D/E") X = "27/05/1997" X = Oconv(10740, "D-YJ") X = "1997-147" X = Oconv(10740, "D2*JY") X = "147*97" X = Oconv(10740, "D YMD") X = "1997 5 27" X = Oconv(10740, "D MY[A,2]") X = "MAY 97"
Captulo 7. Programacin BASIC

257

X = Oconv(10740, "D DMY[,A3,2]") X = "27 MAY 97" X = Oconv(10740, "D/MDY[Z,Z,2]") X = "5/27/97" X = Oconv(10740, "D DMY[,A,]") X = "27 MAY 1997" X = Oconv(10740, "DYMD[2,2,2]") X = "97 05 27" X = Oconv(10740, "DQ") X = "2" X = Oconv(10740, "DMA") X = "MAY" X = Oconv(10740, "DW") X = "2" X = Oconv(10740, "DWA") X = "TUESDAY"

Conversiones de grupo
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin G (Grupo): Expresin de conversin Valor externo X = Oconv("27.05.1997", "G1.2") X = "05.1997" X = Oconv("27.05.1997", "G.2") X = "27.05"

Conversiones de longitud
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin L (Longitud): Expresin de conversin Valor externo X = Oconv("QWERTYUIOP", "L0") X = 10 X = Oconv("QWERTYUIOP", "L7") X = "" X = Oconv("QWERTYU", "L7") X = "QWERTYU" X = Oconv("QWERTYUOP", "L3,5") X = "" X = Oconv("QWER", "L3,5") X = "QWER"

Conversiones de caracteres enmascarados


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin de caracteres enmascarados (MCA, MC/A, MCD, MCL, MCN, MC/N, MCP, MCT, MCU y MCX):

258

Gua del desarrollador de Server Job

Expresin de conversin Valor externo X = Oconv("John Smith 1-234", "MCA") X = "JohnSmith" X = Oconv("John Smith 1-234", "MC/A") X = " 1-234" X = Oconv("1234", "MCD") X = "4D2" X = Oconv("1234", "MCDX") X = "4D2" X = Oconv("John Smith 1-234", "MCL") X = "john smith 1-234" X = Oconv("John Smith 1-234", "MCN") X = "1234" X = Oconv("John Smith 1-234", "MC/N") X = "John Smith -" X = Oconv("John^CSmith^X1-234", "MCP") X = "John.Smith.1-234" X = Oconv("john SMITH 1-234", "MCT") X = "John Smith 1-234" X = Oconv("john smith 1-234", "MCU") X = "JOHN SMITH 1-234" X = Oconv("4D2", "MCX") X = "1234" X = Oconv("4D2", "MCXD") X = "1234"

Conversiones decimales enmascaradas


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MD (Decimal enmascarada): Expresin de conversin Valor externo X = Oconv(987654, "MD2") X = "9876.54" X = Oconv(987654, "MD0") X = "987654" X = Oconv(123456789, "MD2$,") X = "$1,234,567.89" X = Oconv(987654, "MD24$") X = "$98.77" X = Oconv(123456789, "MD2[f,.,,]") X = "f1.234.567,89" X = Oconv(123456789, "MD2,[,,,SEK]") X = "1,234,567.89SEK"

Captulo 7. Programacin BASIC

259

X = Oconv(-123456789, "MD2<[#,.,,]") X = "#<1.234.567,89>" X = Oconv(123456789, "MD33") X = "123456.789" X = Oconv(1234567890, "MD32") X = "12345678.9" X = Oconv(123456789, "MD2F") X = "F1234567.89" X = Oconv(-123456789, "MD2C") X = "1234567.89cr" X = Oconv(123456789, "MD2D") X = "1234567.89 " X = Oconv(123456789, "MD2,D") X = "1,234,567.89 " X = Oconv(1234567.89, "MD2P") X = "1234567.89" X = Oconv(123, "MD3Z") X = ".123" X = Oconv(987654, "MD2-Z") X = "9876.54" X = Oconv(12345.678, "MD20T") X = "12345.67" X = Oconv(123456, "MD2$12#") X = "$####1234.56" X = Oconv(987654, "MD3,$CPZ") X = "$987.654 " X = Oconv(987654, "MD2,ZP12#") X = "####9,876.54"

Conversiones a izquierda y derecha enmascarada


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin ML y MR (Izquierda y derecha enmascarada): Expresin de conversin Valor externo X = Oconv(123456789, "ML2$,") X = "$1,234,567.89" X = Oconv(123, "ML3Z") X = ".123" X = Oconv(123456789, "ML33") X = "123456.789" X = Oconv(1234567890, "ML32") X = "12345678.9" X = Oconv(-123456789, "ML2C") X = "1234567.89cr"

260

Gua del desarrollador de Server Job

X = Oconv(123456789, "ML2D") X = "1234567.89db" X = Oconv(-123456789, "ML2M") X = "1234567.89-" X = Oconv(-123456789, "ML2E") X = "<1234567.89>" X = Oconv(123456789, "ML2(*12)") X = "1234567.89**" X = Oconv(123456789, "MR2(*12)") X = "**1234567.89"

Conversiones de numerales
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin NR (Numeral romano): Expresin de conversin Valor externo X = Oconv(1997, "NR") X = "mcmxcvii" X = Oconv(1997000, "NR") X = "MCMXCVmm"

Conversiones de coincidencia de patrn


Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin P (Coincidencia de patrn): Expresin de conversin Valor externo X = Oconv("123456789", "P(3N-3A-3X);(9N)") X = "123456789" X = Oconv("123-ABC-A7G", "P(3N-3A-3X);(9N)") X = "123-ABC-A7G" X = Oconv("ABC-123-A7G", "P(3N-3A-3X);(9N)") X = "" X = Oconv("123-45-6789", "P(3N-2N-4N)") X = "123-45-6789" X = Oconv("123-456-789", "P(3N-2N-4N)") X = "" X = Oconv("123-45-678A", "P(3N-2N-4N)") X = ""

Conversiones Radix
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MX, MO y MB (Radix): Expresin de conversin Valor externo X = Oconv("1024", "MX") X = "400" X = Oconv("CDE", "MX0C") X = "434445"
Captulo 7. Programacin BASIC

261

X = Oconv("1024", "MO") X = "2000" X = Oconv("CDE", "MO0C") X = "103104105" X = Oconv("1024", "MB") X = "10000000000" X = Oconv("CDE", "MB0C") X = "010000110100010001000101"

Conversiones de comprobacin de rango


Los siguientes ejemplos muestran el efecto del cdigo de conversin R (Comprobacin de rango): Expresin de conversin Valor externo X = Oconv(123, "R100,200") X = 123 X = Oconv(223, "R100,200") X = "" X = Oconv(3.1E2, "R100,200;300,400") X = 3.1E2

Conversiones de hora
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MT (Hora): Expresin de conversin Valor externo X = Oconv(10000, "MT") X = "02:46" X = Oconv(10000, "MTHS") X = "02:46:40am" X = Oconv(10000, "MTH") X = "02:46am" X = Oconv(10000, "MT.") X = "02.46" X = Oconv(10000, "MTS") X = "02:46:40"

Sentencias On...GoSub
Transfiere el control de programa a una subrutina interna. No est disponible en las expresiones.

Sintaxis
On ndice GoSub etiqueta.sentencia1 [, etiqueta.sentencia2] ...

On ndice especifica una expresin que acta como ndice en la lista de etiquetas de sentencia. El valor de ndice determina a qu etiqueta de sentencias se mueve el control de programa. Durante la ejecucin, se evala ndice y se redondea a un entero. Si el valor es 1 o menor, se ejecuta la subrutina definida por

262

Gua del desarrollador de Server Job

etiqueta.sentencia1. Si el valor es 2, se ejecuta la subrutina definida por etiqueta.sentencia2, y as sucesivamente. Si el valor es mayor que el nmero de subrutinas definidas, se ejecuta la ltima subrutina. Un valor nulo genera un error de tiempo de ejecucin. GoSub etiqueta.sentencia1, etiqueta.sentencia2 especifica una lista de etiquetas de sentencia a las que se puede mover el control de programa. Si una etiqueta de sentencia no existe, genera un error de compilador.

Comentarios
Utilice una sentencia Return en la subrutina para devolver el control de programa a la sentencia situada a continuacin de las sentenciasOn...GoSub. Las sentencias On...GoSub pueden escribirse en varias lneas. Finalice cada lnea con una coma, excepto la ltima.

Ejemplo
Este ejemplo utiliza On...GoSub para invocar una subrutina de un conjunto de subrutinas internas en una funcin de transformacin de IBM InfoSphere DataStage, dependiendo de un argumento entrante. La sentencia Return hace que se reanude la ejecucin en la sentencia que va inmediatamente despus de la sentencia GoSub. Es necesario utilizar GoTo tal como se muestra para que el control no fluya accidentalmente a las subrutinas internas.
Function MyTransform(Arg1, Arg2) Reply = "" ;* respuesta predeterminada * Utiliza la subrutina particular dependiendo del valor del argumento: On Arg2 GoSub BadValue, GoodValue1, GoodValue2, BadValue GoTo ExitFunction ;* se utiliza GOTO para evitar un error BadValue: Call DSTransformError("Invalid arg2 ":Arg2, MyTransform") Return ;* devuelve el control a continuacin de On...GoSub GoodValue1: Reply = Arg1 * 99 Return ;* devuelve el control a continuacin de On...GoSub GoodValue2: Reply = Arg1 / 27 Return ;* devuelve el control a continuacin de On...GoSub ExitFunction: Return(Reply)

Sentencia On...GoTo
Mueve el control de programa a la etiqueta especificada. No est disponible en las expresiones.

Sintaxis
On ndice GoTo etiqueta.sentencia1 [, etiqueta.sentencia2] ...

On ndice especifica una expresin que acta como ndice en la lista de etiquetas de sentencia. El valor de ndice determina a qu etiqueta de sentencias se mueve el control de programa. Durante la ejecucin, se evala ndice y se redondea a un entero. Si el valor es 1 o menor, se ejecuta la sentencia definida por etiqueta.sentencia1. Si el valor es 2, se ejecuta la sentencia definida por etiqueta.sentencia2, y as sucesivamente. Si el valor es mayor que el nmero de sentencias definidas, se ejecuta la ltima sentencia. Un valor nulo genera un error de tiempo de ejecucin. GoTo etiqueta.sentencia1, etiqueta.sentencia2 especifica una lista de etiquetas de sentencia a las que se puede mover el control de programa. Si una etiqueta de sentencia no existe, genera un error de compilador.
Captulo 7. Programacin BASIC

263

Comentarios
Las sentencias On...GoTo pueden escribirse en varias lneas. Finalice cada lnea con una coma, excepto la ltima.

Ejemplo
Este ejemplo utiliza On...GoTo para invocar una subrutina de un conjunto de etiquetas en una funcin de transformacin de IBM InfoSphere DataStage, dependiendo de un argumento entrante:
Function MyTransform(Arg1, Arg2) Reply = "" ;* respuesta predeterminada * GoTo a la etiqueta particular, dependiendo del valor del argumento: On Arg2 GoTo BadValue, GoodValue1, GoodValue2, BadValue * Tenga en cuenta que el control no vuelve nunca a la lnea siguiente. BadValue: Call DSTransformError("Invalid arg2 ":Arg2, MyTransform") GoTo ExitFunction GoodValue1: Reply = Arg1 * 99 GoTo ExitFunction GoodValue2: Reply = Arg1 / 27 * Descarta hasta el final de la funcin: ExitFunction: Return(Reply)

Sentencia OpenSeq
Abre un archivo para el proceso secuencial. No est disponible en las expresiones. OpenSeq

Sintaxis
OpenSeq nombreva To variable.archivo [On Error sentencias ] [Locked sentencias] [Then sentencias [Else sentencias]] [Else sentencias]

nombreva es el nombre de la va de acceso del archivo que se va a abrir. Si el archivo no existe, la sentencia OpenSeq falla. Si nombreva es un valor nulo, genera un error de tiempo de ejecucin. To variable.archivo asigna el archivo a una variable.archivo. Todas las sentencias utilizadas para procesar el archivo deben hacer referencia al mismo utilizando variable.archivo. Si variable.archivo es un valor nulo, genera un error muy grave. On Error sentencias especifica las sentencias que se ejecutan si hay un error muy grave mientras se est procesando el archivo. Se produce un error muy grave si el archivo no se puede abrir o si variable.archivo es un valor nulo. Locked sentencias especifica las sentencias que se ejecutan si el archivo est bloqueado por otro usuario. Si no especifica una clusula Locked y existe un bloqueo de conflicto, el programa espera hasta que se libere el bloqueo. Then sentencias especifica las sentencias que se ejecutan despus de abrir el archivo. Else sentencias especifica las sentencias que se ejecutan si no se puede acceder al archivo o no existe.

264

Gua del desarrollador de Server Job

Comentarios
Cada referencia de archivo secuencial de un programa BASIC debe ir precedida de una sentencia OpenSeq aparte para el archivo. OpenSeq establece un bloqueo de registro de actualizacin en el archivo. De este modo, se impide que ningn otro programa cambie el archivo mientras se procesa. Restablezca este bloqueo utilizando una sentencia CloseSeq despus de procesar el archivo. Varias operaciones OpenSeq en el mismo archivo slo generan un bloqueo de registro de actualizacin, por lo que slo debe incluir una sentencia CloseSeq por archivo. Si se produce un error muy grave y no se ha especificado ninguna clusula On Error: v Aparece un mensaje de error. v Se retrotrae alguna transaccin no confirmada iniciada en el entorno de ejecucin actual. v Termina el programa actual. Si se utiliza la clusula On Error, el valor devuelto por la funcin Status es el nmero de error.

Ejemplo
Este es un ejemplo donde se abre un archivo secuencial para comprobar su existencia:
OpenSeq ".\ControlFiles\File1" To PathFvar Locked FilePresent = @True End Then FilePresent = @True End Else FilePresent = @False End

Operadores de coincidencia de patrn


Compara una serie con un patrn de formato. Si el soporte multilingstico est habilitado, el resultado de una operacin de coincidencia depende del valor de entorno local actual de los convenios Ctype y Numeric.

Sintaxis
serie Match[es] patrn

serie es la serie que se va a comparar. Si la serie es un valor nulo, la coincidencia es false y se devuelve 0. patrn es el patrn de formato y puede ser uno de los cdigos siguientes: Este cdigo... Coincide con este tipo de serie... ... 0X nX 0A nA 0N nN Cero o ms caracteres de cualquier tipo. Cero o ms caracteres de cualquier tipo. n caracteres de cualquier tipo. Cero o ms caracteres alfabticos. n caracteres alfabticos. Cero o ms caracteres numricos. n caracteres numricos.

'serie ' Texto exacto escrito entre comillas simples o dobles.

Captulo 7. Programacin BASIC

265

Comentarios
Puede especificar una coincidencia negativa aadiendo ~ (tilde) delante del cdigo. Por ejemplo, ~ 4A coincide con una serie que no contiene cuatro caracteres alfabticos. Si n tiene ms de nueve dgitos, se utiliza como serie literal. Si la serie coincide con el patrn, la comparacin devuelve 1; de lo contrario, devuelve 0. Puede especificar varios patrones separndolos con marcas de valor. Por ejemplo, la expresin siguiente es verdadera si la direccin tiene 16 caracteres alfabticos o 4 caracteres numricos seguidos de 12 caracteres alfabticos; de lo contrario, es falsa:
address Matches "16A": CHAR(253): "4N12A"

Una serie vaca coincide con los patrones siguientes: "0A", "0X", "0N", "...", "", '' o \\.

Funcin Pwr
Eleva el valor de un nmero a la potencia especificada.

Sintaxis
Pwr (nmero, potencia)

nmero es una expresin que se evala en el nmero que se va a elevar a la potencia. Si el nmero es un valor nulo, se devuelve un nulo. potencia especifica la potencia a la que se eleva el nmero. Si la potencia es un valor nulo, se devuelve el valor nulo. Si la potencia no es un entero, nmero no puede ser negativo.

Comentarios
En el caso de un desbordamiento o subdesbordamiento, se imprime un aviso y se devuelve 0.

Ejemplo
Este es un ejemplo del uso de la funcin Pwr:
OppSide = Sqrt(Pwr(Side1, 2) + Pwr(Side2, 2))

Sentencia Randomize
Genera una secuencia repetible de nmeros aleatorios en un rango especificado. No est disponible en las expresiones.

Sintaxis
Randomize (expresin)

expresin se evala como un nmero, n. El rango en el que se selecciona el nmero aleatorio es de 0 a (n -1). Por ejemplo, si n es 100, el nmero aleatorio est en el rango del 0 al 99. Si no se indica ninguna expresin o si la expresin es un valor nulo, se utiliza la hora del da interna y la secuencia es distinta cada vez que se ejecuta el programa.

266

Gua del desarrollador de Server Job

Comentarios
Utilice la funcin Rnd en lugar de Randomize si desea generar una secuencia de nmeros aleatorios no repetible.

Ejemplo
Este es un ejemplo de cmo una rutina puede utilizar la sentencia Randomize para establecer la semilla inicial para que la funcin Rnd genere un conjunto especfico de nmeros aleatorios:
Randomize 1 For n = 1 To NumRecords * Produce series como "ID00", "ID01", "ID57", etc. RandomId = "ID" : Fmt(Rnd(100), "R%2") * ... realizar alguna accin con los ID generados. Next n

ReadSeq
Lee una lnea de datos en un archivo abierto para el proceso secuencial. No est disponible en las expresiones.

Sintaxis
ReadSeq variable From variable.archivo[On Error sentencias] {[Then sentencias [Else sentencias ] | [Else sentencias ]}

ReadSeq variable lee los datos desde la posicin actual en el archivo hasta una lnea nueva y los asignan a variable. From variable.archivo identifica el archivo que se va a leer. variable.archivo debe haberse asignado en una sentencia OpenSeq anterior. Si variable.archivo es un valor nulo, o si el archivo no se encuentra o no est abierto, genera un error de tiempo de ejecucin. On Error sentencias especifica las sentencias que se ejecutan si hay un error muy grave mientras se est procesando el archivo. Se produce un error muy grave si el archivo no se puede abrir o si variable.archivo es un valor nulo. Then sentencias especifica las sentencias que se ejecutan despus de leer la lnea del archivo. Else sentencias especifica las sentencias que se ejecutan si no se puede leer el archivo o si se encuentra el fin del archivo.

Comentarios
La sentencia OpenSeq establece un puntero a la primera lnea del archivo. A continuacin, ReadSeq: 1. Lee los datos desde la posicin actual en el archivo hasta una lnea nueva. a. Asigna los datos a una variable. b. Restablece el puntero a la posicin que se encuentra a continuacin de la lnea nueva. c. Descarta la nueva lnea. Si la conexin entre el cliente y el sistema donde reside la capa de motor excede el tiempo de espera, ReadSeq no devuelve ningn byte del almacenamiento intermedio y se debe volver a intentar la operacin.
Captulo 7. Programacin BASIC

267

La funcin Status devuelve los valores siguientes tras una operacin de ReadSeq: 0 1 2 -1 La lectura ha sido satisfactoria. Se ha encontrado un fin del archivo. Se ha excedido el tiempo de espera de la conexin. El archivo no estaba abierto.

Los dems valores son un nmero de error que indica que se ha utilizado la clusula On Error. Si se produce un error muy grave y no se ha especificado la clusula On Error: v Aparece un mensaje de error. v Se retrotrae alguna transaccin no confirmada iniciada en el entorno de ejecucin actual. v Termina el programa actual.

Ejemplo
El siguiente ejemplo muestra la ReadSeq que se utiliza para procesar cada lnea de un archivo secuencial:
OpenSeq PathName To FileVar Else Call DSLogWarn("Cannot open ":PathName, MyRoutine) GoTo ErrorExit End Loop ReadSeq FileLine From FileVar On Error Call DSLogWarn("Error from ":PathName: " status=":Status(), "MyRoutine") GoTo ErrorExit End THEN * ... se procesa la lnea que acabamos de leer End Else Exit ;* al final del archivo End Repeat CloseSeq FileVar

Funcin REAL
Utilice la funcin REAL para convertir nmero en un nmero de coma flotante sin prdida de precisin. Si nmero se evala como valor nulo, se devuelve el valor nulo.

Sintaxis
REAL (nmero)

Sentencia Return
Finaliza una subrutina y devuelve el control al programa o la sentencia de llamada. No est disponible en las expresiones.

Sintaxis
Return [To etiqueta.sentencia]

To etiqueta.sentencia se utiliza con una subrutina interna iniciada con GoSub para especificar que el control de programa vuelve a la etiqueta de sentencia especificada. Si no hay ninguna clusula To, el control vuelve a la sentencia que hay despus de la sentencia GoSub. Si la etiqueta.sentencia no existe, genera un error de compilador.

268

Gua del desarrollador de Server Job

Comentarios
Cuando una sentencia Return finaliza una subrutina externa llamada con una sentencia Call, todos los archivos abiertos por la subrutina se cierran, excepto los archivos abiertos para variables comunes.

Sentencia Return (valor)


Devuelve un valor de una funcin escrita por el usuario. No est disponible en las expresiones.

Sintaxis
Return (expresin)

El valor de expresin se evala como el valor que desea que devuelva la funcin escrita por el usuario. Si no especifica una expresin, se devuelve una serie vaca.

Comentarios
Puede utilizar la sentencia Return (valor) nicamente en las funciones escritas por el usuario. Si la emplea en un programa o una subrutina, genera un error.

Ejemplo
Este ejemplo muestra el uso de la sentencia Return (valor), donde las sentencias Function y Deffun se utilizan para invocar una transformacin denominada "MyFunctionB" desde otra funcin de transformacin denominada "MyFunctionA":
Function MyFunctionA(Arg1) * Cuando hace referencia a una funcin escrita por el usuario que se mantiene en el * repositorio de DataStage, debe declararla como una funcin con el * nmero correcto de argumentos y aadirle un prefijo "DSU.". Deffun MyFunctionB(A) Calling "DSU.MyFunctionB" Ans = MyFunctionB(Arg1) * Aada su propia transformacin al valor en Ans... ... Return(Ans)

Funcin Right
Extrae una subserie del final de una serie.

Sintaxis
Right (serie, n)

serie es la serie que contiene la subserie. Si serie es un valor nulo, se devuelve el valor nulo. n es el nmero de caracteres que se extraen del final de la serie. Si n es un valor nulo, genera un error de tiempo de ejecucin.

Ejemplos
Estos ejemplos extraen los tres caracteres ms a la derecha de una serie:
MyString = "ABCDEF" MySubStr = Right(MyString, 3) ;* la respuesta es "DEF" MySubStr = Right("AB", 3) ;* la respuesta es "AB"

Captulo 7. Programacin BASIC

269

Funcin Rnd
Genera un nmero aleatorio. No est disponible en las expresiones.

Sintaxis
Rnd (expresin)

expresin se evala como un nmero, n. El rango en el que se selecciona el nmero aleatorio es de 0 a (n -1). Por ejemplo, si n es 100, el nmero aleatorio est en el rango del 0 al 99. Si la expresin es un nmero negativo, se genera un nmero negativo aleatorio. Si la expresin es 0, se devuelve 0. Si la expresin es un valor nulo, genera un error de tiempo de ejecucin.

Comentarios
Para generar secuencias repetibles de nmeros aleatorios, utilice la sentencia Randomize en lugar de Rnd.

Ejemplo
Este es un ejemplo de cmo una rutina puede utilizar la sentencia Randomize para establecer la semilla inicial para que la funcin Rnd genere un conjunto especfico de nmeros aleatorios:
Randomize 1 For n = 1 To NumRecords * Produce series como "ID00", "ID01", "ID57", etc. RandomId = "ID" : Fmt(Rnd(100), "R%2") * ... realizar alguna accin con los ID generados. Next n

Funcin Seq
Convierte un carcter ASCII en su valor de cdigo numrico.

Sintaxis
Seq (carcter)

carcter es el carcter ASCII que se va a convertir. Si carcter es un valor nulo, se devuelve un nulo.

Comentarios
La funcin Seq es la inversa de la funcin Char.

Ejemplo
Este ejemplo utiliza la funcin Seq para devolver el nmero asociado con el primer carcter de una serie:
MyVal = Seq("A") ;* devuelve 65 MyVal = Seq("a") ;* devuelve 97 MyVal = Seq(" 12") ;* devuelve 32 - el primer carcter es un espacio MyVal = Seq("12") ;* devuelve 49 - el primer carcter es el dgito "1"

SetLocale
En la modalidad de soporte multilingstico, establece un entorno local para una determinada categora.

270

Gua del desarrollador de Server Job

Sintaxis
$Include UNIVERSE.INCLUDE UVNLSLOC.Hnombre = SetLocale (categora, valor)

El valor de categora es una de las siguientes seales de inclusin: Seal Significado

UVLC$TIME Hora y fecha UVLC$NUMERIC Numrico UVLC$MONETARY Moneda UVLC$CTYPE Tipo de carcter UVLC$COLLATE Secuencia de ordenacin valor es un nombre de entorno local.

Comentarios
El xito de la funcin SetLocale debe probarse con la funcin Status, que devuelve uno de los siguientes valores: Valor 0 Significado La llamada es satisfactoria.

LCE$NOLOCALES El soporte multilingstico no est habilitado para IBM InfoSphere DataStage. LCE$BAD.LOCALE valor no es un nombre de entorno local vlido. LCE$BAD.CATEGORY No se reconoce la categora especificada.

Ejemplo
* Switch local time convention to Japanese SetLocale (UVLC$TIME, "JP-JAPANESE") If Status() <> 0 Then ... End

Sentencia Sleep
Detiene un programa el nmero de segundos especificado. No est disponible en las expresiones.

Sintaxis
Sleep [segundos]

segundos es el nmero de segundos que se detiene. Si no se especifica segundos o es un valor nulo, se utiliza el valor 1.
Captulo 7. Programacin BASIC

271

Comentarios
No utilice la sentencia Sleep en una transformacin, ya que ralentizar la ejecucin del trabajo de IBM InfoSphere DataStage.

Ejemplo
Este ejemplo muestra la rutina Sleep que se invoca desde una rutina anterior/posterior de InfoSphere DataStage para sondear la existencia de un recurso, con un breve intervalo de espera entre los sondeos:
If NumTimesWaited < RepeatCount Then NumTimesWaited += 1 Sleep 60 ;* 60 segundos = 1 minuto End

Funcin Soundex
Genera cdigos que pueden utilizarse para comparar series de caracteres basndose en cmo suenan.

Sintaxis
Soundex (serie)

serie es la serie que se va a analizar. Slo se tienen en cuenta los caracteres alfabticos de la serie. Si serie es un valor nulo, se devuelve el valor nulo.

Comentarios
La funcin Soundex devuelve un cdigo fontico formado por la primera letra de la serie seguida de un nmero. Las palabras que suenan igual, por ejemplo, rayar y rallar, generan el mismo cdigo fontico.

Ejemplo
Los siguientes ejemplos muestran los valores de Soundex para varias series:
MySnd = Soundex("Greenwood") ;* devuelve "G653" MySnd = Soundex("Greenwod") ;* devuelve "G653" MySnd = Soundex("Green") ;* devuelve "G650" MySnd = Soundex("") ;* devuelve ""

Funcin Space
Devuelve una serie que contiene el nmero especificado de espacios en blanco.

Sintaxis
Space (espacios)

espacios especifica el nmero de espacios de la serie. Si espacios es un valor nulo, genera un error de tiempo de ejecucin.

Ejemplo
Este es un ejemplo de la funcin Space que se utiliza para generar una serie con un nmero variable de espacios:

272

Gua del desarrollador de Server Job

MyStr = Space(20 - Len(Arg1)):Arg1 * se rellena con espacios a la izquierda

Funcin Sqrt
Devuelve la raz cuadrada de un nmero.

Sintaxis
Sqrt (nmero)

nmero es 0 o un nmero positivo. Un nmero negativo genera un error de tiempo de ejecucin. Si el nmero es un valor nulo, se devuelve un nulo.

Ejemplo
Este es un ejemplo del uso de la funcin Sqrt:
OppSide = Sqrt(Side1 ^ 2 + Side2 ^ 2)

Funcin SQuote
Delimita una serie mediante comillas simples.

Sintaxis
SQuote (serie)

serie es la serie que se escribir entre comillas. Si serie es un valor nulo, se devuelve un valor nulo sin comillas.

Ejemplo
Este es un ejemplo de la funcin SQuote que aade caracteres de comilla simple (') al principio y al final de una serie:
ProductNo = 12345 QuotedStr = SQuote(ProductNo : "A") * el resultado es "12345A"

Funcin Status
Devuelve un cdigo que proporciona informacin sobre cmo se ha ejecutado la funcin anterior.

Sintaxis
Status ( )

Comentarios
El valor devuelto por Status vara segn la funcin que notifique. En las descripcin de las funciones se incluye una lista de los valores posibles. Puede utilizar Status despus de las siguientes funciones: v Fmt v Iconv v Oconv v OpenSeq
Captulo 7. Programacin BASIC

273

v ReadSeq v WriteSeq v WriteSeqf

Ejemplos
A continuacin, se proporciona un ejemplo de cmo se utiliza la funcin Status para comprobar la operacin correcta de una llamada a la funcin Iconv:
InDate = Iconv(ExtDate, "D2") ;* convertir la fecha al formato interno ConvStatus = Status() Begin Case Case ConvStatus = 0 * ... la conversin ha sido satisfactoria Case ConvStatus = 1 * ... la conversin ha fallado - ExtDate no se puede analizar como fecha Case ConvStatus = 2 * ... la conversin ha fallado - la conversin "D2" no es vlida (poco probable) Case ConvStatus = 3 * ... la conversin ha sido satisfactoria, pero puede que ExtDate no sea * vlida, por ejemplo, si contiene la serie "31/02/97" End Case

A continuacin, se proporciona un ejemplo de cmo se utiliza la funcin Status para comprobar la operacin correcta de una llamada a la funcin Fmt:
FormattedNum = Fmt(IntNum, "R2$") ;* formatear un nmero FmtStatus = Status() Begin Case Case FmtStatus = 0 * ... el formateo ha sido satisfactorio Case FmtStatus = 1 * ... el formateo ha fallado - IntNum no se puede convertir en un nmero Case FmtStatus = 2 * ... el formateo ha fallado - el formato "R2$" no es vlido (poco probable) End Case

Funcin Str
Forma una serie repitiendo la serie de entrada el nmero de veces especificado.

Sintaxis
Str (serie, repeticin)

serie es la serie que se repetir. Si serie es un valor nulo, se devuelve el valor nulo. repeticin es el nmero de veces que se repite la serie. Si repeticin es un nmero negativo, se devuelve una serie vaca. Si repeticin es un valor nulo, genera un error de tiempo de ejecucin.

Ejemplo
Este es un ejemplo de la funcin Str que se utiliza para generar una serie con un nmero variable de espacios:
MyStr = Str("A", 20 - Len(Arg1)):Arg1 * se rellena con varias "A" a la izquierda

274

Gua del desarrollador de Server Job

Sentencia Subroutine
Marca el inicio de una subrutina externa. No est disponible en las expresiones.

Sintaxis
Subroutine [nombre] ( argumento1[ ,argumento2 ]... )

nombre es un nombre que identifica la subrutina de forma que permite leer el programa ms fcilmente. argumento1 y argumento2 son los nombres de las variables que se utilizan para pasar argumentos entre el programa de llamada y la subrutina. Una subrutina utilizada en una transformacin debe tener uno o varios argumentos; una subrutina anterior o una subrutina posterior debe contener dos argumentos.

Comentarios
La sentencia Subroutine debe ser la primera lnea no comentada de la subrutina. Cada subrutina puede contener una sola sentencia Subroutine. La sentencia Call que invoca la subrutina debe especificar el mismo nmero de argumentos que la sentencia Subroutine.

Ejemplo
Este ejemplo muestra cmo una rutina anterior/posterior debe declararse como una subrutina. El cliente del Diseador lo comprobar automticamente cuando cree una nueva rutina anterior/posterior.
Subroutine MyRoutine(InputArg, ErrorCode) * Los usuarios pueden especificar el valor de serie que deseen cuando utilizan * MyRoutine desde el Diseador de trabajos. Aparecer * en la variable denominada InputArg. * La rutina controla el progreso del trabajo estableciendo * el valor de ErrorCode, que es un argumento de salida. * Un valor distinto de cero detendr la etapa o el trabajo. ErrorCode = 0 ;* respuesta predeterminada * Realice algn proceso... ... Return

Funcin Time
Devuelve la hora interna del sistema.

Sintaxis
Time ( )

Comentarios
La hora interna se obtiene del sistema en el que reside la capa de motor y se devuelve como el nmero de segundos transcurridos desde la medianoche hasta la milsima ms prxima de un segundo.

Ejemplo
Este es un ejemplo de la hora del reloj del sistema actual que se asigna a una variable:
TimeInSecs = Int(Time()) ;* elimina las partes fraccionarias

Captulo 7. Programacin BASIC

275

Funcin TimeDate
Devuelve la hora y la fecha del sistema. Si el soporte multilingstico est habilitado, el resultado de esta funcin depende del valor de entorno local actual del convenio Time.

Sintaxis
TimeDate ( )

Comentarios
La hora y la fecha se devuelven con el siguiente formato: hh:mm:ss dd mmm aaaa hh son las horas (basadas en el reloj de 24 horas). mm son los minutos. ss son los segundos. dd es el da. mmm es una abreviatura de tres letras para el mes. aaaa es el ao.

Ejemplo
Este es un ejemplo de cmo un formato legible por las personas de la fecha y la hora del sistema actual puede asignarse a una variable y manipularse:
NowStr = TimeDate() ;* por ej. "09:59:51 03 JUN 1997" * extraer slo la hora NowTimeStr = Field(NowStr, " ", 1, 1) * extraer el resto como la fecha NowDateStr = Field(NowStr, " ", 2, 3)

Funciones trigonomtricas
Las funciones trigonomtricas devuelven el valor trigonomtrico especificado por la funcin. Todas tienen una sintaxis parecida.

Sintaxis general
TrigFunc (nmero)

TrigFunc es una de las funciones trigonomtricas: Cos, Sin, Tan, ACos, ASin, ATan, CosH, TanH o SinH. nmero es el nmero o la expresin que desea evaluar. Si el nmero es un valor nulo, se devuelve un valor nulo. Si el nmero es un ngulo, los valores fuera del rango del 0 al 360 se interpretan como el mdulo 360. Los valores superiores a 1E17 generan un mensaje de aviso, y se devuelve 0.

276

Gua del desarrollador de Server Job

Comentarios
Cos devuelve el coseno de un ngulo. nmero es el nmero de grados del ngulo. Cos es el inverso de ACos. Sin devuelve el seno de un ngulo. nmero es el nmero de grados del ngulo. Sin es el inverso de ASin. Tan devuelve la tangente de un ngulo. nmero es el nmero de grados del ngulo. Tan es el inverso de ATan. ACos devuelve el arcocoseno de nmero en grados. ACos es el inverso de Cos. ASin devuelve el arcoseno de nmero en grados. ASin es el inverso de Sin. ATan devuelve la arcotangente de nmero en grados. ATan es el inverso de Tan. CosH devuelve el coseno hiperblico de un ngulo. nmero es el nmero de grados del ngulo. SinH devuelve el seno hiperblico de un ngulo. nmero es el nmero de grados del ngulo. TanH devuelve la tangente hiperblica de un ngulo. nmero es el nmero de grados del ngulo.

Ejemplos
Este ejemplo muestra que la funcin ACos es la inversa de la funcin Cos:
Angle = 45 NewAngle = Acos(Cos(Angle)) ;* NewAngle debe ser 45 tambin

Este ejemplo muestra que la funcin ASin es la inversa de la funcin Sin:


Angle = 45 NewAngle = Asin(Sin(Angle)) ;* NewAngle debe ser 45 tambin

Este ejemplo muestra que la funcin ATan es la inversa de la funcin Tan:


Angle = 45 NewAngle = Atan(Tan(Angle)) ;* NewAngle debe ser 45 tambin

Este ejemplo utiliza la funcin Cos para calcular la secante de un ngulo:


Angle = 45 Secant = 1 / Cos(Angle) ;* define el ngulo en grados ;* calcula la secante

Este ejemplo utiliza la funcin CosH para calcular la secante hiperblica de un ngulo:
Angle = 45 HSecant = 1 / Cosh(Angle) ;* define el ngulo en grados ;* calcula la secante hiperblica

Este ejemplo utiliza la funcin Sin para calcular la cosecante de un ngulo:


Angle = 45 CoSecant = 1 / Sin(Angle) ;* define el ngulo en grados ;* calcula la cosecante

Este ejemplo utiliza la funcin SinH para calcular la cosecante hiperblica de un ngulo:
Angle = 45 ;* define el ngulo en grados HCoSecant = 1 / Sinh(Angle) * calcula la cosecante hiperblica

Este ejemplo utiliza la funcin Tan para calcular la cotangente de un ngulo:


Angle = 45 CoTangent = 1 / Tan(Angle) ;* define el ngulo en grados ;* calcula la cotangente
Captulo 7. Programacin BASIC

277

Este ejemplo utiliza la funcin TanH para calcular la cotangente hiperblica de un ngulo:
Angle = 45 ;* define el ngulo en grados HCoTangent = 1 / Tanh(Angle) * calcula la cotangente hiperblica

Funcin Trim
Recorta los caracteres no deseados de una serie.

Sintaxis
Trim (serie) Trim (serie, carcter [ ,opcin] )

serie es una serie que contiene caracteres no deseados. Si serie es un valor nulo, se devuelve el valor nulo. carcter especifica el carcter que se va a recortar (que no sea un espacio o una tabulacin). Si el carcter es un valor nulo, genera un error de tiempo de ejecucin. opcin especifica el tipo de operacin de recorte, y puede ser uno de los valores siguientes: L Elimina las apariciones iniciales del carcter. T Elimina las apariciones finales del carcter. B Elimina las apariciones iniciales y finales del carcter. R Elimina las apariciones iniciales y finales del carcter y reduce las apariciones a una sola aparicin. A Elimina todas las apariciones del carcter. F Elimina las tabulaciones y los espacios en blanco iniciales. E Elimina las tabulaciones y los espacios en blanco finales. D Elimina las tabulaciones y los espacios en blanco iniciales y finales y reduce los espacios y las tabulaciones a solo un espacio y una tabulacin. Si no se especifica la opcin o es un valor nulo, se supone que es R.

Comentarios
En la primera sintaxis, varias apariciones de espacios y tabulaciones se reducen a una individual, y se elimina la totalidad de tabulaciones y espacios iniciales y finales.

Ejemplos
A continuacin, se muestran algunos ejemplos de varias formas de la funcin Trim:
MyStr = Trim(" String with whitespace ") * ...devuelve "String with whitespace" MyStr = Trim("..Remove..redundant..dots....", ".") * ...devuelve "Remove.redundant.dots" MyStr = Trim("Remove..all..dots....", ".", "A") * ...devuelve "Removealldots" MyStr = Trim("Remove..trailing..dots....", ".", "T") * ...devuelve "Remove..trailing..dots"

278

Gua del desarrollador de Server Job

Funcin TrimB
Recorta los espacios finales de una serie.

Sintaxis
TrimB (serie)

serie es la serie que contiene los espacios finales. Si serie es un valor nulo, se devuelve el valor nulo.

Ejemplo
MyStr = TrimB(" String with whitespace ") * ...devuelve "(" String with whitespace"

Funcin TrimF
Recorta las tabulaciones y los espacios iniciales de una serie.

Sintaxis
TrimF (serie)

serie es la serie que contiene los espacios iniciales. Si serie es un valor nulo, se devuelve el valor nulo.

Ejemplo
MyStr = TrimF(" String with whitespace * ...devuelve "String with whitespace" ")

Funcin UniChar
En la modalidad de soporte multilingstico, genera un carcter individual en formato Unicode.

Sintaxis
UniChar (expresin)

expresin es el valor decimal de un carcter Unicode, en el rango de 0 a 65535.

Comentarios
Si expresin tiene un valor fuera del rango especificado, UniChar devuelve una serie vaca. Si expresin un nulo SQL, se devuelve un nulo SQL.

Funcin UniSeq
En la modalidad de soporte multilingstico, convierte un carcter Unicode en su valor decimal equivalente.

Sintaxis
UniSeq (expresin)

expresin es un carcter Unicode que se va a convertir en su valor decimal.


Captulo 7. Programacin BASIC

279

Comentarios
Comprese con la funcin Seq, que convierte caracteres ASCII en sus equivalentes decimales.

Funcin UpCase
Cambia las letras minsculas de una serie a maysculas. Si el soporte multilingstico est habilitado, el resultado de esta funcin depende del valor de entorno local actual del convenio Ctype.

Sintaxis
UpCase (serie)

serie es la serie cuyas letras desea cambiar a maysculas.

Ejemplo
Este es un ejemplo de la funcin UpCase:
MixedCase = "ABC123abc" UpperCase = UpCase(MyString) ;* el resultado es "ABC123ABC"

Funcin WEOFSeq
Graba una marca de fin del archivo en un archivo secuencial abierto.

Sintaxis
WEOFSeq variable.archivo [On Error sentencias ]

variable.archivo especifica el archivo secuencial. variable.archivo es el nombre de variable asignado al archivo por la sentencia OpenSeq anterior. On Error sentencias especifica la accin que se realiza si se produce un error muy grave. Se produce un error muy grave si el archivo no se abre o si variable.archivo es un valor nulo. Si no especifica una clusula On Error, el trabajo termina anormalmente y se graba un error en el archivo de registro del trabajo.

Comentarios
La marca de fin del archivo trunca el archivo en la posicin actual del puntero. Una sentencia ReadSeq posterior utilizar la clusula Else.

Ejemplo
El siguiente ejemplo abre un archivo secuencial y lo trunca grabando inmediatamente una marca de fin del archivo:
OpenSeq PathName To FileVar Then WeofSeq FileVar End Else Call DSLogFatal("Cannot open file ":Pathname,"Routine1") GoTo ErrorExit End

280

Gua del desarrollador de Server Job

Funcin WriteSeq
Escribe una nueva lnea en un archivo que est abierto para el proceso secuencial y avanza un puntero a la siguiente posicin en el archivo.

Sintaxis
WriteSeq lnea To variable.archivo [On Error sentencias] {[Then sentencias [Else sentencias ] | [Else sentencias ]}

lnea es la lnea que se graba en el archivo secuencial. WriteSeq graba una lnea nueva al final de la lnea. To variable.archivo especifica el archivo secuencial. variable.archivo es el nombre de variable asignado al archivo por la sentencia OpenSeq anterior. On Error sentencias especifica la accin que se realiza si se produce un error muy grave. Se produce un error muy grave si el archivo no se abre o si variable.archivo es un valor nulo. Si no especifica una clusula On Error, el trabajo termina anormalmente y se graba un mensaje de error en el archivo de registro del trabajo. Then sentencias especifica la accin que realiza el programa despus de que se grabe una lnea en el archivo. Si no especifica una clusula Then, debe especificar una clusula Else. Else sentencias especifica la accin que realiza el programa si la lnea no se puede grabar en el archivo, por ejemplo, si el archivo no existe. Si no especifica una clusula Else, debe especificar una clusula Then.

Comentarios
La lnea se graba en la posicin actual dentro del archivo y, a continuacin, el puntero se avanza a la siguiente posicin despus de la lnea nueva. Los datos existentes en el archivo se sobrescriben, a menos que el puntero est al final del archivo. Puede utilizar la funcin Status despus de WriteSeq para determinar si la operacin ha sido satisfactoria. Status devuelve 0 si el archivo estaba bloqueado, -2 si el archivo no estaba bloqueado y un cdigo de error si se ha tomado la clusula On Error.

Ejemplo
El siguiente ejemplo graba una lnea individual en un archivo secuencial truncndolo y grabando en l inmediatamente despus de abrirlo:
OpenSeq PathName To FileVar Then WeofSeq FileVar ;* write end-of-file mark immediately WriteSeq "First line" To FileVar Else On Error Call DSLogWarn("Error from ":PathName:" status=":Status(), "MyRoutine") GoTo ErrorExit End Call DSLogFatal("Cannot write to ":Pathname, "MyRoutine") GoTo ErrorExit End

Captulo 7. Programacin BASIC

281

End Else Call DSLogFatal("Cannot open file ":Pathname, "MyRoutine") GoTo ErrorExit End

Funcin WriteSeqF
Escribe una nueva lnea en un archivo que est abierto para el proceso secuencial, avanza un puntero a la siguiente posicin en el archivo y guarda el archivo en un disco.

Sintaxis
WriteSeqF lnea To variable.archivo [On Error sentencias] {[Then sentencias [Else sentencias]] | [Else sentencias]}

lnea es la lnea que se graba en el archivo secuencial. WriteSeqF graba una lnea nueva al final de la lnea. To variable.archivo especifica el archivo secuencial. variable.archivo es el nombre de variable asignado al archivo por la sentencia OpenSeq anterior. On Error sentencias especifica la accin que se realiza si se produce un error muy grave. Se produce un error muy grave si el archivo no se abre o si variable.archivo es un valor nulo. Si no especifica una clusula On Error, el trabajo termina anormalmente y se graba un mensaje de error en el archivo de registro del trabajo. Then sentencias especifica la accin que realiza el programa despus de que se grabe una lnea en el archivo. Si no especifica una clusula Then, debe especificar una clusula Else. Else sentencias especifica la accin que realiza el programa si la lnea no se puede grabar en el archivo, por ejemplo, si el archivo no existe. Si no especifica una clusula Else, debe especificar una clusula Then.

Comentarios
WriteSeqF trabaja de la misma forma que WriteSeq, excepto que cada lnea se graba directamente en el disco, en lugar de guardarse en el almacenamiento intermedio y grabarse luego por lotes. Una sentencia WriteSeqF despus de varias sentencias WriteSeq graba todas las lneas del almacenamiento intermedio en el disco. Nota: Utilice la sentencia WriteSeqF slo para registrar operaciones, ya que un aumento de la E/S de disco disminuye el rendimiento del programa. Puede utilizar la funcin Status despus de WriteSeqF para determinar si la operacin ha sido satisfactoria. Status devuelve 0 si el archivo estaba bloqueado, -2 si el archivo no estaba bloqueado y un cdigo de error si se ha tomado la clusula On Error.

Ejemplo
El siguiente ejemplo se aade a un archivo secuencial al leer hasta el final del mismo e imponer la grabacin de una lnea ms:
OpenSeq PathName To FileVar Then Loop ReadSeq Dummy From FileVar Else Exit ;* en el fin del archivo Repeat

282

Gua del desarrollador de Server Job

WriteSeqF "Extra line" To FileVar Else On Error Call DSLogWarn("Error from ":PathName:" status=":Status(), "MyRoutine") GoTo ErrorExit End Call DSLogFatal("Cannot write to ":Pathname, "MyRoutine") GoTo ErrorExit End End Else Call DSLogFatal("Cannot open file ":Pathname, "MyRoutine") GoTo ErrorExit End

Funcin Xtd
Convierte una serie hexadecimal a decimal.

Sintaxis
Xtd (serie)

serie es la serie numrica que desea convertir.

Ejemplo
Este es un ejemplo de la funcin Xtd que se utiliza para convertir un nmero decimal en una representacin de serie hexadecimal:
MyHex = "2F" MyNumber = Xtd(MyHex) ;* devuelve 47

Cdigos de conversin
Los cdigos de conversin especifican cmo se formatean los datos para la salida o el almacenamiento interno. Se especifican en una funcin Iconv o Oconv. A continuacin, se proporciona una lista de los cdigos que puede utilizar.

Extraccin de caracteres de los campos:


G Extraccin de valores de campo MCA Extraccin de caracteres alfabticos de un campo MC/A Extraccin de caracteres no alfabticos de un campo MCN Extraccin de caracteres numricos de un campo MC/N Extraccin de caracteres no numricos de un campo MCM Extraccin de caracteres de varios bytes de soporte multilingstico de un campo MC/M Extraccin de caracteres de un solo byte de soporte multilingstico de un campo P Extraccin de datos que coinciden con un patrn R Extraccin de un valor numrico que entra dentro de un rango

Proceso previo de los datos:


L Limitacin de la longitud de los datos devueltos S Generacin de cdigos para comparar las palabras por su sonido Proceso de texto: MCU Conversin de letras minsculas a maysculas MCL Conversin de letras maysculas a minsculas MCT Conversin de las palabras del campo a maysculas iniciales MCP Conversin de caracteres no imprimibles en un punto NLS Conversin de series entre el formato interno y externo utilizando una correlacin de juego de caracteres
Captulo 7. Programacin BASIC

283

Formateo de nmeros, fechas, horas y monedas:


MD Formateo de nmeros como cantidades monetarias o numricas ML Justificacin a la izquierda y formateo de nmeros MR Justificacin a la derecha y formateo de nmeros MP Empaquetamiento de nmeros decimales, dos por byte, para el almacenamiento D Conversin de fechas MT Conversin de horas TI Conversin de horas en formato interno al convenio local predeterminado NR Conversin de numerales romanos en numerales rabes NL Conversin de caracteres alternativos dependientes del entorno local en numerales rabes MM Formateo de datos de moneda

Conversiones Radix:
MX Conversin de nmeros hexadecimales en decimales MCD Conversin de nmeros decimales en hexadecimales MCX Conversin de nmeros hexadecimales en decimales MO Conversin de nmeros octales en decimales MB Conversin de nmeros binarios en decimales MY Conversin de nmeros hexadecimales en sus equivalentes ASCII MUOC Conversin de nmeros hexadecimales en valores de caracteres Unicode Los cdigos de conversin se describen ms detalladamente en las siguientes pginas de referencia. Los cdigos de conversin aparecen en orden alfabtico.

D
Convierte fechas en formato de almacenamiento y viceversa. Cuando el soporte multilingstico est habilitado, el formato de fecha predeterminado del entorno local altera temporalmente el formato de fecha predeterminado establecido en el archivo msg.text.

Sintaxis
D [aos.dgitos] [delimitador omisin] [separador] [formato.opciones [ modificadores ] ] [ E ] [ L ]

aos.dgitos indica el nmero de dgitos del ao que aparecern en la salida. El valor predeterminado es 4. En la entradaaos.dgitos se ignora. Si la fecha de entrada no tiene ningn ao, el ao se obtiene de la fecha del sistema. delimitador es un carcter no numrico individual que se utiliza como delimitador de campo si la conversin primero debe realizar una extraccin de grupo para obtener la fecha interna. No puede ser el delimitador del sistema. omisin debe acompaar el uso de delimitador y es el nmero de campos delimitados que se omitirn para extraer la fecha. separador es el carcter que se utiliza para separar el da, el mes y el ao en la salida. Si no especifica separador, la fecha se convierte al formato 01 DEC 1999. En la entrada, separador se ignora. Si el soporte multilingstico est habilitado y no especifica aos.dgitos ni separador, el formato de fecha predeterminado es 01 DEC 1999. formato.opciones est formado por hasta seis opciones que definen cmo se genera la fecha en la salida (se ignoran en la entrada). Cada opcin de formato puede tener un modificador asociado que se describe ms adelante. Las opciones de formato slo pueden utilizarse en determinadas combinaciones, tal como se describe a continuacin. Las opciones son las siguientes: v Y [ n ] genera el nmero de aos en la salida como n dgitos.

284

Gua del desarrollador de Server Job

v YA genera slo el nombre del ao del calendario chino en la salida. Si el soporte multilingstico est habilitado, utiliza el campo YEARS del entorno local Hora/Fecha. v M genera slo el mes como un nmero del 1 al 12 en la salida. v MA genera slo el nombre del mes en la salida. Si el soporte multilingstico est habilitado, utiliza el campo MONS del entorno local Hora/Fecha. Puede utilizar cualquier combinacin de letras maysculas y minsculas para el mes; IBM InfoSphere DataStage coteja la combinacin con el campo ABMONS. Sino, el campo MONS. v MB genera el nombre del mes abreviado en la salida. Si el soporte multilingstico est habilitado, utiliza el campo ABMONS del entorno local Hora/Fecha; de lo contrario, utiliza los tres primeros caracteres del nombre del mes. v MR genera el nmero de mes en nmeros romanos en la salida. v D genera el da del mes como un nmero del 1 al 31 en la salida. v W genera el da de la semana como un nmero del 1 al 7 en la salida, siendo lunes el da 1. Si el soporte multilingstico est habilitado, utiliza el campo DAYS del entorno local Hora/Fecha, siendo domingo el da 1. v WA genera el da por nombre en la salida. Si el soporte multilingstico est habilitado, utiliza el campo DAYS del entorno local Hora/Fecha, salvo que lo modifiquen los modificadores de formato, f1, f2, etc. v WB genera el nombre del da abreviado en la salida. Si el soporte multilingstico est habilitado, utiliza el campo ABDAYS del entorno local Hora/Fecha. v Q genera el trimestre del ao como un nmero del 1 al 4 en la salida. v J genera el da del ao como un nmero del 1 al 366 en la salida. v N genera el nmero de ao de la era actual en la salida. Si el soporte multilingstico est habilitado, utiliza el campo ERA STARTS del entorno local Hora/Fecha. v NA genera el nombre de la era correspondiente al ao actual en la salida. Si el soporte multilingstico est habilitado, utiliza los campos ERA NAMES o ERA STARTS del entorno local Hora/Fecha. v Z genera el nombre del huso horario en la salida. A continuacin, se muestra qu opciones de formato pueden utilizarse juntas: Utilice esta opcin... Con estas opciones... S YA L MA MB D N N/D W WA WB Q J Z Y, [modificadores] [modificadores]
Captulo 7. Programacin BASIC

M, MA, D, J, [modificadores] M, MA, D, [modificadores] Y, YA, D, [modificadores] Y, YA, D, [modificadores] Y, YA, D, [modificadores] Y, M, [modificadores] Y, M, MA, MB, D, WA, [modificadores] Y, M, MA, MB, D, WA, [modificadores] Y, YA, M, MA, D Y, YA, M, MA, D Y, YA, M, MA, D

285

Los [ modificadores ] modifican los formatos de salida de los datos especificados por opciones.formato. Puede especificar hasta seis modificadores, separados por comas. Las comas indican con qu opcin.formato est asociado cada modificador; por lo tanto, debe incluir todas las comas, aunque slo desee especificar un modificador (vea los ejemplos). Pueden ser los siguientes valores: v n muestra n caracteres. Se utiliza con las opciones numricas D, M, Y, W, Q y J. Se utiliza con las opciones de texto MA, MB, WA, WB, YA, N y "text". v A[n] muestra el mes como n caracteres alfabticos. Se utiliza con las opciones Y, M, W y N. v Z[n] suprime los ceros iniciales y aparece como n dgitos. Funciona como n con las opciones numricas. v E conmuta los formatos de fecha da/mes/ao y mes/da/ao. v L muestra los nombres de mes y da en minsculas. El valor predeterminado es en maysculas.

Valor devuelto por la funcin Status


Si especifica una fecha no vlida en este cdigo, devuelve una fecha interna vlida, pero seala la anomala asignando un valor 3 a la funcin Status. Por ejemplo, 02/29/99 se interpreta como 03/01/99, y 09/31/93 se interpreta como 10/01/93. Si la fecha de entrada es un valor nulo, se asigna un valor 3 a Status y no se realiza ninguna conversin.

Ejemplos
Los siguientes ejemplos muestran el efecto de varios cdigos de conversin D con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("31 DEC 1967", "D") X = 0 X = Iconv("27 MAY 97", "D2") X = 10740 Iconv("05/27/97", "D2/") X = 10740 X = Iconv("27/05/1997", "D/E") X = 10740 X = Iconv("1997 5 27", "D YMD") X = 10740 X = Iconv("27 MAY 97", "D DMY[,A3,2]") X = 10740 X = Iconv("5/27/97", "D/MDY[Z,Z,2]") X = 10740 X = Iconv("27 MAY 1997", "D DMY[,A,]") X = 10740 X = Iconv("97 05 27", "DYMD[2,2,2]") X = 10740 Los siguientes ejemplos muestran el efecto de varios cdigos de conversin D con la funcin Oconv: Expresin de conversin Valor externo X = Oconv(0, "D") X = "31 DEC 1967"

286

Gua del desarrollador de Server Job

X = Oconv(10740, "D2") X = "27 MAY 97" X = Oconv(10740, "D2/") X = "05/27/97" X = Oconv(10740, "D/E") X = "27/05/1997" X = Oconv(10740, "D-YJ") X = "1997-147" X = Oconv(10740, "D2*JY") X = "147*97" X = Oconv(10740, "D YMD") X = "1997 5 27" X = Oconv(10740, "D MY[A,2]") X = "MAY 97" X = Oconv(10740, "D DMY[,A3,2]") X = "27 MAY 97" X = Oconv(10740, "D/MDY[Z,Z,2]") X = "5/27/97" X = Oconv(10740, "D DMY[,A,]") X = "27 MAY 1997" X = Oconv(10740, "DYMD[2,2,2]") X = "97 05 27" X = Oconv(10740, "DQ") X = "2" X = Oconv(10740, "DMA") X = "MAY" X = Oconv(10740, "DW") X = "2" X = Oconv(10740, "DWA") X = "TUESDAY"

G
Extrae uno o varios valores delimitados de un campo. G

Sintaxis
G [ omisin ] campos de delimitador

El valor de omisin indica el nmero de campos que se omitirn; si no se especifica, se supone que es 0 y no se omite ningn campo. delimitador es un carcter no numrico que se utiliza como separador de campos. No debe utilizar las variables del sistema @IM, @FM, @VM, @ SM y @TM como delimitadores. campos es el nmero de valores contiguos que se van a extraer.
Captulo 7. Programacin BASIC

287

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin G con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("27.05.1997", "G1.2") X = "05.1997" X = Iconv("27.05.1997", "G.2") X = "27.05" Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin G con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("27.05.1997", "G1.2") X = "05.1997" X = Oconv("27.05.1997", "G.2") X = "27.05"

L
Extrae datos que cumplen unos criterios de longitud.

Sintaxis
L [ n [ ,m ] ]

n por s solo es el nmero mximo de caracteres que deben contener los datos para poder devolverse. Si contiene ms de n caracteres, se devuelve una serie vaca. Si no especifica n, o si n es 0, se devuelve la longitud de los datos. n, m especifica un rango. Si los datos contiene los caracteres del n al m, se devuelven; de lo contrario, se devuelve una serie vaca.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin L con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("QWERTYUIOP", "L0") X = 10 X = Iconv("QWERTYUIOP", "L7") X = "" X = Iconv("QWERTYU", "L7") X = "QWERTYU" X = Iconv("QWERTYUOP", "L3,5") X = "" X = Iconv("QWER", "L3,5") X = "QWER" Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin L con la funcin Oconv:

288

Gua del desarrollador de Server Job

Expresin de conversin Valor externo X = Oconv("QWERTYUIOP", "L0") X = 10 X = Oconv("QWERTYUIOP", "L7") X = "" X = Oconv("QWERTYU", "L7") X = "QWERTYU" X = Oconv("QWERTYUOP", "L3,5") X = "" X = Oconv("QWER", "L3,5") X = "QWER"

MB
Convierte nmeros binarios en decimales o en un valor ASCII para el almacenamiento, o viceversa para la salida.

Sintaxis
MB [ 0C ]

0C convierte el nmero octal en su carcter ASCII equivalente en la entrada, y viceversa en la salida.

Comentarios
Los caracteres distintos de 0 y 1 generan un error.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MB con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("10000000000", "MB") X = 1024 X = Iconv("010000110100010001000101", "MB0C") X = "CDE" Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MB con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("1024", "MB") X = "10000000000" X = Oconv("CDE", "MB0C") X = "010000110100010001000101"

MCA
Extrae todos los caracteres alfabticos de un campo.

Captulo 7. Programacin BASIC

289

Sintaxis
MCA

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCA con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("John Smith 1-234", "MCA") X = "JohnSmith" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCA con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("John Smith 1-234", "MCA") X = "JohnSmith"

MC/A
Extrae todos los caracteres no alfabticos de un campo.

Sintaxis
MC/A

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MC/A con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("John Smith 1-234", "MC/A") X = " 1-234" El siguiente ejemplo muestra el efecto de un cdigo de conversin MC/A con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("John Smith 1-234", "MC/A") X = " 1-234"

MCD
Convierte nmeros decimales en hexadecimales.

Sintaxis
MCD

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCD con la funcin Iconv: Expresin de conversin Valor interno

290

Gua del desarrollador de Server Job

X = Iconv("4D2", "MCD") X = "1234" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCD con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("1234", "MCD") X = "4D2"

MCL
Convierte todas las letras maysculas a minsculas.

Sintaxis
MCL

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCL con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("John Smith 1-234", "MCL") X = "john smith 1-234" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCL con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("John Smith 1-234", "MCL") X = "john smith 1-234"

MCM
Se utiliza si el soporte multilingstico est habilitado. Extrae todos los caracteres de varios bytes de soporte multilingstico del campo. Si la modalidad de soporte multilingstico est inhabilitada, el cdigo devuelve el valor 2, que indica un cdigo de conversin no vlido.

Sintaxis
MCM

Ejemplo
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCM con la funcin Iconv:
IF SYSTEM(NL$ON) THEN Multibyte.Characters = ICONV(Input.String, "MCM") END

Oconv se comporta de la misma forma que Iconv.

Captulo 7. Programacin BASIC

291

MC/M
Se utiliza si el soporte multilingstico est habilitado. Extrae todos los caracteres de un solo byte del campo. Si la modalidad de soporte multilingstico est inhabilitada, el cdigo devuelve el valor 2, que indica un cdigo de conversin no vlido. MC/M

Sintaxis
MC/M

Ejemplo
El siguiente ejemplo muestra el efecto de un cdigo de conversin MC/M con la funcin Iconv:
IF SYSTEM(NL$ON) THEN Singlebyte.Characters = ICONV(Input.String, "MC/M") END

Oconv se comporta de la misma forma que Iconv.

MCN
Extrae todos los caracteres numricos de un campo.

Sintaxis
MCN

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCN con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("John Smith 1-234", "MCN") X = "1234" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCN con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("John Smith 1-234", "MCN") X = "1234"

MC/N
Extrae todos los caracteres no numricos de un campo.

Sintaxis
MC/N

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MC/N con la funcin Iconv:

292

Gua del desarrollador de Server Job

Expresin de conversin Valor interno X = Iconv("John Smith 1-234", "MC/N") X = "John Smith -" El siguiente ejemplo muestra el efecto de un cdigo de conversin MC/N con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("John Smith 1-234", "MC/N") X = "John Smith -"

MCP
Convierte los caracteres no imprimibles en un punto.

Sintaxis
MCP

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCP con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("John^CSmith^X1-234", "MCP") X = "John.Smith.1-234" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCP con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("John^CSmith^X1-234", "MCP") X = "John.Smith.1-234"

MCT
Convierte las palabras de una serie en palabras con maysculas iniciales.

Sintaxis
MCT

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCT con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("john SMITH 1-234", "MCT") X = "John Smith 1-234" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCT con la funcin Oconv:

Captulo 7. Programacin BASIC

293

Expresin de conversin Valor externo X = Oconv("john SMITH 1-234", "MCT") X = "John Smith 1-234"

MCU
Convierte todas las letras minsculas a maysculas.

Sintaxis
MCU

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCU con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("john smith 1-234", "MCU") X = "JOHN SMITH 1-234" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCU con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("john smith 1-234", "MCU") X = "JOHN SMITH 1-234"

MCX
Convierte nmeros hexadecimales en decimales.

Sintaxis
MCX

Ejemplos
El siguiente ejemplo muestra el efecto de un cdigo de conversin MCX con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("1234", "MCX") X = "4D2" El siguiente ejemplo muestra el efecto de un cdigo de conversin MCX con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("4D2", "MCX") X = "1234"

294

Gua del desarrollador de Server Job

MD
Formatea los nmeros como cantidades monetarias o numricas, o convierte nmeros formateados al formato de almacenamiento interno. Si se incluyen las opciones $, F, I o Y, la conversin es monetaria. Si el soporte multilingstico est habilitado y la conversin es monetaria, el separador de millares y el separador decimal se obtienen del convenio MONETARY del entorno local. Si la conversin es numrica, se obtienen del convenio NUMERIC. Las opciones <, -, C y D definen nmeros para uso monetario y alteran temporalmente los valores del convenio MONETARY.

Sintaxis
MD n [ m ] [ opciones ]

n es un nmero del 0 al 9 que indica el nmero de lugares decimales que se utilizan en la salida. Si n es 0, la salida no contiene ningn separador decimal. El valor de m especifica el factor de escala. En la entrada, el separador decimal se desplaza m posiciones a la derecha antes del almacenamiento. En la salida, el separador decimal se desplaza m posiciones a la izquierda. Por ejemplo, si m es 2 en una conversin de entrada y los datos de entrada son 123, estos se almacenaran como 12300. Si m es 2 en una conversin de salida y los datos almacenados son 123, estos se mostraran en la salida como 1.23. Si m no se especifica, se supone que es igual que n. Los nmeros se redondean o se rellenan con ceros, segn sea necesario El valor de opciones puede ser cualquiera de los siguientes: v , especifica una coma como delimitador de millares. Para especificar otro carcter como delimitador de millares, utilice la expresin del convenio. v $ antepone como prefijo un signo de moneda local al nmero. Si el soporte multilingstico est habilitado, el signo se deriva del convenio MONETARY del entorno local. v $ antepone como prefijo un signo de franco al nmero. v I se utiliza con Oconv y especifica que se utiliza el smbolo monetario internacional correspondiente al entorno local. Cuando se utiliza con Iconv, especifica que se elimina. v Y se utiliza con Oconv. Se utiliza el carcter de yen/yuan. v - especifica un signo menos como sufijo para las cantidades negativas; a las cantidades positivas se aade un espacio en blanco como sufijo. v < especifica que las cantidades negativas estn delimitadas con corchetes para la salida; a las cantidades positivas se aade un espacio en blanco como prefijo y como sufijo. v C aade el sufijo CR a las cantidades negativas; a las cantidades positivas se aade un sufijo de dos espacios en blanco. v D aade el sufijo DB a las cantidades negativas; a las cantidades positivas se aade un sufijo de dos espacios en blanco. v P especifica que no se realiza ningn escalado si los datos de entrada ya contienen un separador decimal. v Z genera 0 como una serie vaca. v T truca los datos, en lugar de redondearlos. v fx aade una mscara de formateo en la salida y la elimina en la entrada. f es un nmero del 1 al 99 que indica el nmero mximo de caracteres de mscara que se eliminan o se aaden. x es el carcter que se utiliza como mscara de formateo. Si no utiliza la opcin fx y los datos contienen una mscara de formateo, se genera una serie vaca. Las mscaras de formateo se describen en Expresin de formato. v intl es una expresin que se utiliza para especificar un convenio para el formateo monetario o numrico.
Captulo 7. Programacin BASIC

295

v convention es una expresin que se utiliza para especificar un convenio para el formateo monetario o numrico. La expresin convention tiene la sintaxis siguiente: [ prefijo,millares,decimal,sufijo ] Nota: Cada elemento de la expresin del convenio es opcional, pero debe especificar los delimitadores y las comas en la posicin correcta. Por ejemplo, para especificar slo millares, escriba [,millares,, ]. prefijo especifica un prefijo para el nmero. Si prefijo contiene espacios, comas o corchetes de cierre, delimtelos con comillas. millares especifica el delimitador de millares. decimal especifica el delimitador de decimales. sufijo especifica un sufijo para el nmero. Si sufijo contiene espacios, comas o corchetes de cierre, delimtelos con comillas.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MD (decimal enmascarado) con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("9876.54", "MD2") X = 987654 X = Iconv("987654", "MD0") X = 987654 X = Iconv("$1,234,567.89", "MD2$,") X = 123456789 X = Iconv("123456.789", "MD33") X = 123456789 X = Iconv("12345678.9", "MD32") X = 1234567890 X = Iconv("F1234567.89", "MD2F") X = 123456789 X = Iconv("1234567.89cr", "MD2C") X = -123456789 X = Iconv("1234567.89 ", "MD2D") X = 123456789 X = Iconv("1,234,567.89 ", "MD2,D") X = 123456789 X = Iconv("9876.54", "MD2-Z") X = 987654 X = Iconv("$####1234.56", "MD2$12#") X = 123456 X = Iconv("$987.654 ", "MD3,$CPZ") X = 987654 X = Iconv("####9,876.54", "MD2,ZP12#") X = 987654

296

Gua del desarrollador de Server Job

Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MD (Decimal enmascarada) con la funcin Oconv: Expresin de conversin Valor externo X = Oconv(987654, "MD2") X = "9876.54" X = Oconv(987654, "MD0") X = "987654" X = Oconv(123456789, "MD2$,") X = "$1,234,567.89" X = Oconv(987654, "MD24$") X = "$98.77" X = Oconv(123456789, "MD2[f,.,,]") X = "f1.234.567,89" X = Oconv(123456789, "MD2,[,,,SEK]" X ="1,234,567.89SEK" X = Oconv(-123456789, "MD2<[#,.,,]") X = #<1.234.567,89>" X = Oconv(123456789, "MD33") X = "123456.789" X = Oconv(1234567890, "MD32") X = "12345678.9" X = Oconv(123456789, "MD2F") X = "F1234567.89" X = Oconv(-123456789, "MD2C") X = "1234567.89cr" X = Oconv(123456789, "MD2D") X = "1234567.89 " X = Oconv(123456789, "MD2,D") X = "1,234,567.89 " X = Oconv(1234567.89, "MD2P") X = "1234567.89" X = Oconv(123, "MD3Z") X = ".123" X = Oconv(987654, "MD2-Z") X = "9876.54" X = Oconv(12345.678, "MD20T") X = "12345.67" X = Oconv(123456, "MD2$12#") X = "$####1234.56" X = Oconv(987654, "MD3,$CPZ") X = "$987.654 " X = Oconv(987654, "MD2,ZP12#") X = "####9,876.54"

Captulo 7. Programacin BASIC

297

ML & MR
Justifica y formatea cantidades monetarias y numricas. ML especifica la justificacin a la izquierda; MR especifica la justificacin a la derecha. Si se incluyen las opciones F o $, la conversin es monetaria. Si el soporte multilingstico est habilitado y la conversin es monetaria, el separador de millares y el separador decimal se obtienen del convenio MONETARY del entorno local. Si la conversin es numrica, se obtienen del convenio NUMERIC. Las opciones <, -, C y D definen nmeros para uso monetario y alteran temporalmente los valores del convenio MONETARY. ML y MR

Sintaxis
ML | MR [ n [ m ] opciones [ ( fx ) ]

n es un nmero del 0 al 9 que indica el nmero de lugares decimales que se utilizan en la salida. Si n es 0, la salida no contiene ningn separador decimal. El valor de m especifica el factor de escala. En la entrada, el separador decimal se desplaza m posiciones a la derecha antes del almacenamiento. En la salida, el separador decimal se desplaza m posiciones a la izquierda. Por ejemplo, si m es 2 en una conversin de entrada y los datos de entrada son 123, estos se almacenaran como 12300. Si m es 2 en una conversin de salida y los datos almacenados son 123, estos se mostraran en la salida como 1.23. Si m no se especifica, se supone que es igual que n. Los nmeros se redondean o se rellenan con ceros, segn sea necesario El valor de opciones puede ser cualquiera de los siguientes: v , especifica una coma como delimitador de millares. Para especificar otro carcter como delimitador de millares, utilice la expresin del convenio. v C aade el sufijo CR a las cantidades negativas; a las cantidades positivas se aade un sufijo de dos espacios en blanco. v D aade el sufijo DB a las cantidades negativas; a las cantidades positivas se aade un sufijo de dos espacios en blanco. v Z genera 0 como una serie vaca. v M especifica un signo menos como sufijo para las cantidades negativas. A las cantidades positivas se aade un espacio en blanco como sufijo. v E especifica que las cantidades negativas estn delimitadas con corchetes para la salida; a las cantidades positivas se aade un espacio en blanco como prefijo y como sufijo. v N suprime el signo menos en los nmeros negativos. v $ antepone como prefijo un signo de moneda local al nmero antes de la justificacin. Si el soporte multilingstico est habilitado, el signo se deriva del convenio MONETARY del entorno local. Para aadir otro smbolo monetario como prefijo, utilice la expresin intl. v $ antepone como prefijo un signo de franco al nmero. v ( fx ) aade una mscara de formateo en la salida y la elimina en la entrada. x es un nmero del 1 al 99 que indica el nmero mximo de caracteres de mscara que se eliminan o se aaden. f es un cdigo que especifica el carcter que se utiliza como mscara de formateo, y es uno de los siguientes: # especifica una mscara de blancos. * especifica una mscara de asteriscos. % especifica una mscara de ceros. v intl es una expresin que se utiliza para personalizar la salida conforme a distintos convenios internacionales, y permite los caracteres de varios bytes.

298

Gua del desarrollador de Server Job

La expresin intl tiene la sintaxis siguiente: [ prefijo,millares,decimal,sufijo ] Nota: Cada elemento de la expresin del convenio es opcional, pero debe especificar los delimitadores y las comas en la posicin correcta. Por ejemplo, para especificar slo millares, escriba [,millares,, ]. prefijo especifica un prefijo para el nmero. Si prefijo contiene espacios, comas o corchetes de cierre, delimtelos con comillas. millares especifica el delimitador de millares. Si millares contiene espacios, comas o corchetes de cierre, delimtelos con comillas. decimal especifica el delimitador de decimales. Si decimal contiene espacios, comas o corchetes de cierre, delimtelos con comillas. sufijo especifica un sufijo para el nmero. Si sufijo contiene espacios, comas o corchetes de cierre, delimtelos con comillas. Las series literales tambin pueden escribirse entre parntesis. Las mscaras de formateo se describen en Expresin de formato.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin ML y MR con el convenio Iconv: Expresin de conversin Valor interno X = Iconv("$1,234,567.89", "ML2$,") X = 123456789 X = Iconv(".123", "ML3Z") X = 123 X = Iconv("123456.789", "ML33") X = 123456789 X = Iconv("12345678.9", "ML32") X = 1234567890 X = Iconv("1234567.89cr", "ML2C") X = -123456789 X = Iconv("1234567.89db", "ML2D") X = 123456789 X = Iconv("1234567.89-", "ML2M") X = -123456789 X = Iconv("<1234567.89>", "ML2E") X = -123456789 X = Iconv("1234567.89**", "ML2(*12)") X = 123456789 X = Iconv("**1234567.89", "MR2(*12)") X = 123456789 Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin ML y MR con la funcin Oconv: Expresin de conversin Valor externo
Captulo 7. Programacin BASIC

299

X = Oconv(123456789, "ML2$,") X = "$1,234,567.89" X = Oconv(123, "ML3Z") X = ".123" X = Oconv(123456789, "ML33") X = "123456.789" X = Oconv(1234567890, "ML32") X = "12345678.9" X = Oconv(-123456789, "ML2C") X = 1234567.89cr" X = Oconv(123456789, "ML2D") X = " "1234567.89db" X = Oconv(-123456789, "ML2M") X = "1234567.89-" X = Oconv(-123456789, "ML2E") X = "<1234567.89>" X = Oconv(123456789, "ML2(*12)") X = "1234567.89**" X = Oconv(123456789, "MR2(*12)") X = "**1234567.89"

MM
En la modalidad de soporte multilingstico, formatea los datos de moneda utilizando el convenio MONETARY actual. MM

Sintaxis
MM [ n ] [ I [ L ] ]

n es el nmero de lugares decimales que se generan o se almacenan. I formatea los datos utilizando el smbolo de moneda internacional de tres caracteres especificado en el convenio MONETARY del entorno local actual, un punto como separador decimal y una coma como separador de millares. Si aade L, los datos se formatean utilizando el separador de millares y el separador decimal con el convenio MONETARY del entorno local actual. I y L se ignoran para las conversiones de entrada mediante Iconv.

Comentarios
Si especifica MM sin ningn argumento, la conversin utiliza los separadores decimales y de millares y el smbolo de moneda especificados en el convenio MONETARY del entorno local actual.

300

Gua del desarrollador de Server Job

MO
Convierte nmeros octales en decimales o en un valor ASCII para el almacenamiento, o viceversa para la salida.

Sintaxis
MO [ 0C ]

0C convierte el nmero octal en su carcter ASCII equivalente en la entrada, y viceversa en la salida.

Comentarios
Los caracteres fuera del rango 0-7 pueden generar un error.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin M0 con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("2000", "MO") X = 1024 X = Iconv("103104105", "MO0C") X = "CDE" Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin M0 con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("1024", "MO") X = "2000" X = Oconv("CDE", "MO0C") X = "103104105"

MP
Empaqueta dos nmeros decimales por byte para el almacenamiento y los desempaqueta para la salida.

Sintaxis
MP

Comentarios
Los signos + iniciales se omiten. Los signos - iniciales hacen que se almacene una D hexadecimal en la mitad inferior del ltimo dgito interno. Si hay un nmero de mitades empaquetadas impar, se aaden cuatro bits iniciales 0. El rango de bytes de datos en el formato interno expresado en hexadecimal es de 00 a 99 y de 0D a 9D. Esta conversin slo acepta como entrada dgitos decimales, de 0 al 9, y los signos ms y menos; de lo contrario, la conversin falla. Los nmeros decimales empaquetados deben desempaquetarse para la salida o no se podrn mostrar.

Captulo 7. Programacin BASIC

301

MT
Convierte datos al y desde el formato de hora. MT

Sintaxis
MT [ H ] [ S ] [ separador]

MT sin opciones especifica que la hora est en formato de 24 horas, omitiendo los segundos, con un separador de dos puntos entre horas y minutos, por ejemplo, 23:59. H especifica un formato de salida de 12 horas con el sufijo AM o PM. S incluye los segundos en la hora de salida. separador es un carcter no numrico que especifica el separador utilizado entre las horas, los minutos y los segundos en la salida.

Comentarios
En la salida, MT define el formato de salida externo de la hora. En la entrada, MT especifica slo que los datos son una hora, y las opciones H y S se ignoran. Si la fecha de entrada no tiene minutos ni segundos, se supone que son 0. Para los formatos de 12 horas, utilice el sufijo AM, A, PM o P para indicar que la hora es anterior o posterior al medioda. Si se especifica una hora superior a 12, se supone que se utiliza un reloj de 24 horas. 12:00 AM es la medianoche y 12:00 PM es el medioda. La hora se almacena como el nmero de segundos desde la medianoche. El valor de medianoche es 0.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MT con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("02:46", "MT") X = 9960 X = Iconv("02:46:40am", "MTHS") X = 10000 X = Iconv("02:46am", "MTH") X = 9960 X = Iconv("02.46", "MT.") X = 9960 X = Iconv("02:46:40", "MTS") X = 10000 Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MT con la funcin Oconv: Expresin de conversin Valor interno

302

Gua del desarrollador de Server Job

X = Oconv("02:46", "MT") X = "02:46" X = Oconv("02:46:40am", "MTHS") X = "02:46:40am" X = Oconv("02:46am", "MTH") X = "02:46am" X = Oconv("02.46", "MT.") X = "02.46" X = Oconv("02:46:40", "MTS") X = "02:46:40"

MUOC
Devuelve el valor de almacenamiento interno de una serie como series hexadecimales de cuatro dgitos.

Sintaxis
MUOC

Comentarios
En la salida, utilizando Oconv, la serie proporcionada se devuelve con cada carcter convertido en su valor de almacenamiento interno hexadecimal de cuatro dgitos. En la entrada, utilizando Iconv, la serie proporcionada se trata como grupos de cuatro dgitos hexadecimales y se devuelve el valor de almacenamiento interno. Un grupo formado por menos de cuatro dgitos se rellena con ceros a la izquierda.

Ejemplo
X = UniChar(222):UniChar(240):@FM XInt = Oconv(X, MX0C) Y = Oconv(X, NLSISO8859-1) YExt = Oconv(Y, MX0C) Yint = OCONV(X, MU0C)

Las variables contienen:


Xint (Internal form in hex bytes): C39EC3B0FE Yext (External form in hex bytes): DEF03F Yint (Internal form in UNICODE ): 00DE00F0F8FE

MX
Convierte nmeros hexadecimales en decimales o en un valor ASCII para el almacenamiento, o viceversa para la salida.

Sintaxis
MX [ 0C ]

0C convierte el nmero hexadecimal en su carcter ASCII equivalente en la entrada, y viceversa en la salida.

Comentarios
Los caracteres fuera de los rangos 0-9, A-F o a-f generan un error.
Captulo 7. Programacin BASIC

303

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MX con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("400", "MX") X = 1024 X = Iconv("434445", "MX0C") X = "CDE" Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MX con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("1024", "MX") X = "400" X = Oconv("CDE", "MX0C") X = "434445"

MY
Convierte caracteres ASCII en valores hexadecimales en la entrada, y viceversa en la salida.

Sintaxis
MY

Comentarios
Los caracteres fuera de los rangos 0-9, A-F o a-f generan un error.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MY con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("ABCD", "MY") X = 41424344 X = Iconv("0123", "MY") X = 30313233 Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin MY con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("41424344", "MY") X = "ABCD" X = Oconv("30313233", "MY") X = "0123"

304

Gua del desarrollador de Server Job

NL
En la modalidad de soporte multilingstico, convierte los nmeros de un juego de caracteres locales en numerales rabes.

Sintaxis
NL

Ejemplo
El siguiente ejemplo muestra el efecto del cdigo de conversin NL con las funciones Oconv e Iconv. Convertir a efectos de visualizacin:
Internal.Number = 1275 External.Number = OCONV(Internal.Number, "NL")

Convertir a efectos aritmticos:


Internal.Number = ICONV(External.Number, "NL")

NLS
En la modalidad de soporte multilingstico, convierte entre el juego de caracteres interno y el juego de caracteres externo.

Sintaxis
NLS nombrecorrelacin

nombrecorrelacin es el nombre de la correlacin de juego de caracteres que se utiliza para la conversin.

Comentarios
En la salida que se utiliza la funcin Oconv, el cdigo de conversin NLS correlaciona una serie del juego de caracteres interno con el juego de caracteres externo especificado en nombrecorrelacin. En la entrada que se utiliza la funcin Iconv, el cdigo de conversin NLS supone que la serie proporcionada est en el juego de caracteres especificado por nombrecorrelacin, y la correlaciona con el juego de caracteres interno. Si nombrecorrelacin est establecido en Unicode, la serie proporcionada se supone que est formada por caracteres Unicode de 2 bytes. Si hay un nmero impar de bytes en la serie, el ltimo byte se sustituye por el carcter de sustitucin de Unicode y el valor devuelto por la funcin Status se establece en 3.

NR
Convierte numerales rabes en numerales romanos en la salida, y viceversa en la entrada.

Sintaxis
NR

Captulo 7. Programacin BASIC

305

Comentarios
Estos son los valores equivalentes de los numerales romanos y rabes:
Romano i v x l c d m V X L C D L Arbigo 1 5 10 50 100 500 1000 5000 10000 50000 100000 500000 1000000

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin NR con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("mcmxcvii", "NR") X = 1997 X = Iconv("MCMXCVmm", "NR") X = 1997000 Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin NR con la funcin Oconv: Expresin de conversin Valor externo X = Oconv(1997, "NR") X = "mcmxcvii" X = Oconv(1997000, "NR") X = "MCMXCVmm"

P
Extrae datos que coinciden con un patrn.

Sintaxis
P (patrn) [ ; (patrn) ... ]

306

Gua del desarrollador de Server Job

patrn especifica el patrn con el que coinciden los datos y debe ir entre parntesis. Puede ser uno de los cdigos siguientes: v nN coincide con n caracteres numricos. Si n es 0, se establece la coincidencia con cualquier nmero de caracteres numricos. v nA coincide con n caracteres alfabticos. Si n es 0, se establece la coincidencia con cualquier nmero de caracteres alfabticos. v nX coincide con n caracteres alfanumricos. Si n es 0, se establece la coincidencia con cualquier nmero de caracteres alfanumricos. literal es una serie literal con la que deben coincidir los datos. ; separa una serie de patrones.

Comentarios
Si los datos no coinciden con ninguno de los patrones, se devuelve una serie vaca.

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin P con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("123456789", "P(3N-3A-3X);(9N)") X = "123456789" X = Iconv("123-ABC-A7G", "P(3N-3A-3X);(9N)") X = "123-ABC-A7G" X = Iconv("123-45-6789", "P(3N-2N-4N)") X = "123-45-6789" Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin P con la funcin Oconv: Expresin de conversin Valor externo X = Oconv("123456789", "P(3N-3A-3X);(9N)") X = "123456789" X = Oconv("123-ABC-A7G", "P(3N-3A-3X);(9N)") X = "123-ABC-A7G" X = Oconv("ABC-123-A7G", "P(3N-3A-3X);(9N)") X = "" X = Oconv("123-45-6789", "P(3N-2N-4N)") X = "123-45-6789" X = Oconv("123-456-789", "P(3N-2N-4N)") X = "" X = Oconv("123-45-678A", "P(3N-2N-4N)") X = ""

Captulo 7. Programacin BASIC

307

R
Recupera datos de un rango.

Sintaxis
Rn,m [ ; n,m ... ]

n especifica el lmite inferior del rango. m especifica el lmite superior del rango. ; separa varios rangos.

Comentarios
Si los datos no cumplen las especificaciones del rango, se devuelve una serie vaca.

Ejemplos
El siguiente ejemplo muestra el efecto del cdigo de conversin R (Comprobacin de rango) con la funcin Iconv. Expresin de conversin Valor interno X = Iconv("123", "R100,200") X = 123 El siguiente ejemplo muestra el efecto del cdigo de conversin R (Comprobacin de rango) con la funcin Oconv. Expresin de conversin Valor externo X = Oconv(123, "R100,200") X = 123 X = Oconv(223, "R100,200") X = "" X = Oconv(3.1E2, "R100,200;300,400") X = 3.1E2

S
Genera cdigos fonticos que pueden utilizarse para comparar palabras basndose en cmo suenan.

Sintaxis
S

Comentarios
El cdigo fontico est formado por la primera letra de la palabra seguida de un nmero. Las palabras que suenan igual, por ejemplo, rayar y rallar, generan el mismo cdigo fontico.

308

Gua del desarrollador de Server Job

Ejemplos
Los siguientes ejemplos muestran el efecto de algunos cdigos de conversin S con la funcin Iconv: Expresin de conversin Valor interno X = Iconv("GREEN", "S") X = "G650 X = Iconv("greene", "S") X = "G650" X = Iconv("GREENWOOD", "S" X = "G653" X = Iconv("GREENBAUM", "S") X = "G651"

TI
En la modalidad de soporte multilingstico, convierte las horas del formato interno al formato del convenio del entorno local predeterminado.

Sintaxis
TI

Ejemplo
El siguiente ejemplo muestra el efecto del cdigo de conversin TI con la funcin Oconv:
Internal.Time = TIME()International.Time = OCONV(Internal.Time, "TI")

Captulo 7. Programacin BASIC

309

310

Gua del desarrollador de Server Job

Captulo 8. Transformaciones y rutinas incorporadas


Estos temas describen las transformaciones y rutinas incorporadas suministradas con IBM InfoSphere DataStage. Cuando edita una etapa Transformer, puede convertir los datos utilizando una de las transformaciones incorporadas que se proporcionan con InfoSphere DataStage. De manera alternativa, puede convertir los datos utilizando sus propias transformaciones personalizadas. Las transformaciones personalizadas permiten convertir los datos utilizando funciones o rutinas. Para obtener ms informacin sobre la edicin de una etapa Transformer, consulte Etapas Transformer en la pgina 108. Para obtener detalles sobre cmo grabar una subrutina escrita por el usuario o una transformacin personalizada, consulte Captulo 6, Programacin en IBM InfoSphere DataStage, en la pgina 135. Para ver una lista completa de las funciones BASIC soportadas, consulte Captulo 7, Programacin BASIC, en la pgina 149.

Transformaciones incorporadas
Puede ver las definiciones de las transformaciones incorporadas utilizando el cliente del Diseador. El uso de IBM InfoSphere DataStage en un entorno de soporte multilingstico tiene implicaciones para algunas de las transformaciones de datos y de tipo de datos. Si el soporte multilingstico est habilitado, deber comprobar las descripciones de las transformaciones en el cliente del Diseador antes de utilizarlas, para asegurarse de que funcionan correctamente.

Transformaciones de serie
Transformacin CAPITALS Tipo de entrada Serie Tipo de salida Serie Carpeta Built-in/String Descripcin El primer carcter de cada palabra del argumento se sustituye por el equivalente en maysculas, si procede. Toda secuencia de caracteres entre caracteres de espacio se toma como una palabra, por ejemplo: CAPITALS("monday feb 14th") => "Monday Feb 14th" Devuelve una serie de la que se han eliminado todos los caracteres distintos a los dgitos del 0 al 9, por ejemplo: DIGITS("123abc456") => "123456" Devuelve una serie de la que se han eliminado todos los caracteres excepto las letras, por ejemplo: LETTERS("123abc456") => "abc"

DIGITS

Serie

Serie

Built-in/String

LETTERS

Serie

Serie

Built-in/String

Copyright IBM Corp. 1997, 2011

311

Transformacin StringDecode

Tipo de entrada Vase la descripcin

Tipo de salida Serie

Carpeta sdk/String

Descripcin Carga una matriz a efectos de bsqueda. La matriz contiene pares de nombre=valor. En la primera llamada, la matriz se guarda; en todas las llamadas se busca el nombre proporcionado en la matriz y se devuelve el valor correspondiente. Toma como argumentos una clave de bsqueda y una matriz, y devuelve una serie. Devuelve 1 si la serie slo consta de uno o ms espacios. Elimina los espacios iniciales de la entrada y devuelve una serie con la misma longitud que la entrada. No reduce los espacios entre caracteres que no son espacios en blanco. Elimina los espacios finales de la entrada y devuelve una serie con la misma longitud que la entrada. No reduce los espacios entre caracteres que no son espacios en blanco. Devuelve la serie de entrada con maysculas iniciales en cada palabra.

StringIsSpace

Serie

Serie

sdk/String

StringLeftJust

Serie

Serie

sdk/String

StringRightJust

Serie

Serie

sdk/String

StringUpperFirst

Serie

Serie

sdk/String

Transformaciones de fecha
Transformacin MONTH.FIRST Tipo de entrada MONTH.TAG Tipo de salida Fecha Carpeta Built-in/Dates Descripcin Devuelve una fecha interna numrica correspondiente al primer da de un mes con el formato MONTH.TAG (AAAA-MM), por ejemplo: MONTH.FIRST("1993-02") => 9164 donde 9164 es la representacin interna del 1 de febrero de 1993.

312

Gua del desarrollador de Server Job

Transformacin MONTH.LAST

Tipo de entrada MONTH.TAG

Tipo de salida Fecha

Carpeta Built-in/Dates

Descripcin Devuelve una fecha interna numrica correspondiente al ltimo da de un mes con el formato MONTH.TAG (AAAA-MM), por ejemplo: MONTH.LAST("1993-02") => 9191 donde 9191 es la representacin interna del 28 de febrero de 1993.

QUARTER.FIRST

QUARTER.TAG

Fecha

Built-in/Dates

Devuelve una fecha interna numrica correspondiente al primer da de un trimestre con el formato QUARTER.TAG (AAAAQn), por ejemplo: QUARTER.FIRST ("1993Q2") => 9133 donde 9133 es la representacin interna del 1 de enero de 1993.

QUARTER.LAST

QUARTER.TAG

Fecha

Built-in/Dates

Devuelve una fecha interna numrica correspondiente al ltimo da de un trimestre con el formato QUARTER.TAG (AAAAQn), por ejemplo: QUARTER.LAST("1993Q2") => 9222 donde 9222 es la representacin interna del 31 de marzo de 1993.

TIMESTAMP. TO.DATE

Indicacin de fecha y hora

Fecha

Built-in/Dates

Convierte el formato de indicacin de fecha y hora (AAAA-MM-DD HH:MM:SS) en un formato de fecha interna, por ejemplo: TIMESTAMP.TO.DATE("199612-05 13:46:21") => "10567"

TAG.TO.DATE

DATE.TAG

Fecha

Built-in/Dates

Convierte una serie con el formato AAAA-MM-DD en una fecha interna numrica, por ejemplo: TAG.TO.DATE("1993-02-14") => 9177

Captulo 8. Transformaciones y rutinas incorporadas

313

Transformacin WEEK.FIRST

Tipo de entrada WEEK.TAG

Tipo de salida Fecha

Carpeta Built-in/Dates

Descripcin Devuelve una fecha interna numrica correspondiente al primer da (Lunes) de una semana con el formato WEEK.TAG (AAAAWnn), por ejemplo: WEEK.FIRST("1993W06") => 9171 donde 9171 es la representacin interna del 8 de febrero de 1993.

WEEK.LAST

WEEK.TAG

Fecha

Built-in/Dates

Devuelve una fecha interna numrica correspondiente al ltimo da (Domingo) de una semana con el formato WEEK.TAG (AAAAWnn), por ejemplo: WEEK.LAST("1993W06") => 9177 donde 9177 es la representacin interna del 14 de febrero de 1993.

YEAR.FIRST

YEAR.TAG

Fecha

Built-in/Dates

Devuelve una fecha interna numrica correspondiente al primer da de un ao con el formato YEAR.TAG (AAAA), por ejemplo: YEAR.FIRST("1993") => 9133 donde 9133 es la representacin interna del 1 de enero de 1993.

YEAR.LAST

YEAR.TAG

Fecha

Built-in/Dates

Devuelve una fecha interna numrica correspondiente al ltimo da de un ao con el formato YEAR.TAG (AAAA), por ejemplo: YEAR.LAST("1993") => 9497 donde 9497 es la representacin interna del 31 de diciembre de 1993.

314

Gua del desarrollador de Server Job

Transformacin TIMESTAMP. TO.TIME

Tipo de entrada Indicacin de fecha y hora

Tipo de salida Hora

Carpeta Built-in/Dates

Descripcin Convierte el formato de TIMESTAMP (AAAA-MM-DD HH:MM:SS) en un formato de hora interna. Por ejemplo: TIMESTAMP.TO.TIME("199612-05 13:46:21") => "49581" donde 49581 es la representacin interna del 5 de diciembre de 1996, 1:46 p.m. y 21 segundos.

TIMESTAMP

Fecha

Indicacin de fecha y Built-in/Dates hora

Convierte el formato de fecha interna en el formato TIME-STAMP (AAAA-MM-DD HH:MM:SS). Por ejemplo: TIMESTAMP("10567") => "1996-12- 05 00:00:00" donde 10567 es la representacin interna del 5 de diciembre de 1996.

DATE.TAG

Fecha

DATE.TAG

Built-in/Dates

Convierte una fecha interna numrica en una serie con el formato DATE.TAG (AAAA-MM-DD), por ejemplo: DATE.TAG(9177) => "1993-02-14"

TAG.TO.WEEK

DATE.TAG

WEEK.TAG

Built-in/Dates

Convierte una serie con el formato DATE.TAG (AAAA-MM-DD) al formato WEEK.TAG (AAAAWnn), por ejemplo: TAG.TO.WEEK("1993-02-14") => "1993W06"

WEEK.TAG

Fecha

WEEK.TAG

Built-in/Dates

Convierte una fecha con formato de fecha interna en una serie WEEK.TAG (AAAAWnn), por ejemplo: WEEK.TAG(9177) => "1993W06"

MONTH.TAG

Fecha

MONTH.TAG

Built-in/Dates

Convierte una fecha interna numrica en una serie con el formato MONTH.TAG (AAAA-MM), por ejemplo: MONTH.TAG(9177) => "1993-02"

Captulo 8. Transformaciones y rutinas incorporadas

315

Transformacin TAG.TO.MONTH

Tipo de entrada DATE. TAG

Tipo de salida MONTH.TAG

Carpeta Built-in/Dates

Descripcin Convierte una serie con el formato DATE.TAG (AAAA-MM-DD) al formato MONTH.TAG (AAAA-MM), por ejemplo: TAG.TO.MONTH("1993-02014") => "1993-02"

QUARTER.TAG

Fecha

QUARTER.TAG

Built-in/Dates

Convierte una fecha interna numrica en una serie con el formato QUARTER.TAG (AAAAQn), por ejemplo: QUARTER.TAG(9177) => "1993Q2"

TAG.TO. QUARTER

DATE.TAG

QUARTER.TAG

Built-in/Dates

Convierte una serie con el formato DATE.TAG (AAAA-MM-DD) al formato QUARTER.TAG (AAAAQn), por ejemplo: TAG.TO.QUARTER("1993-0214") => "1993Q2"

MONTH.TO. QUARTER

MONTH.TAG

QUARTER.TAG

Built-in/Dates

Convierte una serie con el formato MONTH.TAG (AAAA-MM) al formato QUARTER.TAG (AAAAQn), por ejemplo: MONTH.TO.QUARTER("199302") => "1993Q1"

YEAR.TAG

Fecha

YEAR.TAG

Built-in/Dates

Convierte una fecha con formato de fecha interna al formato YEAR.TAG (AAAA), por ejemplo: YEAR.TAG(9177) => "1993"

TAG.TO.YEAR

DATE.TAG

YEAR.TAG

Built-in/Dates

Convierte una serie con el formato DATE.TAG (AAAA-MM-DD) al formato YEAR.TAG (AAAA), por ejemplo: TAG.TO.YEAR("1993-02-14") => "1993"

MONTH.TO.YEAR

MONTH.TAG

YEAR.TAG

Built-in/Dates

Convierte una serie con el formato MONTH.TAG (AAAA-MM) al formato YEAR.TAG (AAAA), por ejemplo: MONTH.TO.YEAR("1993-02") => "1993"

316

Gua del desarrollador de Server Job

Transformacin QUARTER.TO. YEAR

Tipo de entrada QUARTER.TAG

Tipo de salida YEAR.TAG

Carpeta Built-in/Dates

Descripcin Convierte una serie con el formato QUARTER.TAG (AAAAQn) al formato YEAR.TAG (AAAA), por ejemplo: QUARTER.TO.YEAR("1993Q2") => "1993"

DateCurrent DateTime

Serie

sdk/date

Devuelve la fecha/hora actual con el formato AAAA-MM-DD HH:MM:SS.SSS. Devuelve la fecha/hora actual en GMT con el formato AAAA-MM-DD HH:MM:SS.SSS. Devuelve la hora de Internet o Swatch actual. Convierte los das desde 1900 al formato AAAAMMDD HH:MM:SS:SSS. Convierte los das desde 1970 al formato AAAAMMDD HH:MM:SS:SSS.

DateCurrent GMTTime

Serie

sdk/date

DateCurrent SwatchTime DateDaysSince 1900To TimeStamp DateDaysSince 1970To TimeStamp

Nmero Serie

sdk/date sdk/date

Serie

sdk/date

Las siguientes transformaciones aceptan series de fecha de entrada con uno de los formatos siguientes: v Una fecha delimitada cualquiera que especifique Da Mes Ao (por ejemplo, 4/19/1999, 4.19.1999, 4/19/99, 4.19.99) v Fechas de mes alfa (por ejemplo, Abr 08 1999, Abr 08 99) v Fechas no delimitadas con formato Ao Mes Da (por ejemplo, 19990419, 990419) v Fechas del calendario juliano (por ejemplo, 99126, 1999126) DateGenericGetDay Serie Serie sdk/date/ generic Devuelve el valor Da de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Mes de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Hora de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Hora de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Minutos de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS.

DateGeneric GetMonth

Serie

Serie

sdk/date/ generic

DateGenericGetTime Serie

Serie

sdk/date/ generic

DateGeneric GetTimeHour

Serie

Serie

sdk/date/ generic

DateGenericGetTime Serie Minute

Serie

sdk/date/ generic

Captulo 8. Transformaciones y rutinas incorporadas

317

Transformacin

Tipo de entrada

Tipo de salida Serie

Carpeta sdk/date/ generic

Descripcin Devuelve el valor Segundos de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Ao de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve una fecha de entrada adecuada para la carga utilizando Informix CLI. Devuelve una fecha de entrada con un formato adecuado para la carga utilizando Informix CLI con HH:MM:SS:SSS al final. Devuelve la fecha de entrada con un formato interno de IBM InfoSphere DataStage. Devuelve la fecha de entrada con un formato interno de InfoSphere DataStage con HH:MM:SS.SSS al final. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando la etapa ODBC. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando la etapa ODBC con HH:MM:SS.SSS al final. Devuelve una fecha de entrada con un formato adecuado para la carga utilizando Oracle OCI. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando Oracle OCI con HH:MM:SS al final. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando Sybase Open Client. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando Sybase Open Client con HH:MM:SS.SSS al final.

DateGenericGetTime Serie Second

DateGenericGetYear

Serie

Serie

sdk/date/ generic

DateGeneric ToInfCLI

Serie

Serie

sdk/date/ generic

DateGeneric ToInfCLIWithTime

Serie

Serie

sdk/date/ generic

DateGeneric ToInternal DateGeneric ToInternalWithTime

Serie

Fecha

sdk/date/ generic sdk/date/ generic

Serie

Fecha

DateGeneric ToODBC

Serie

Serie

sdk/date/ generic

DateGeneric ToODBCWithTime

Serie

Serie

sdk/date/ generic

DateGeneric ToOraOCI

Serie

Serie

sdk/date/ generic

DateGeneric ToOraOCIWithTime

Serie

Serie

sdk/date/ generic

DateGeneric ToSybaseOC

Serie

Serie

sdk/date/ generic

DateGeneric ToSybaseOC WithTime

Serie

Serie

sdk/date/ generic

318

Gua del desarrollador de Server Job

Transformacin DataGeneric ToTimeStamp DateGeneric DateDiff DateGeneric DaysSince1900

Tipo de entrada Serie

Tipo de salida Serie

Carpeta sdk/date/ generic sdk/date/ generic sdk/date/ generic

Descripcin Devuelve la fecha de entrada con un formato AAAAMMDD HH:MM:SS:SSS. Compara dos fechas y devuelve el nmero de das de diferencia. Compara la fecha de entrada con 1899-12-31 a las 12 de la noche y devuelve el nmero de das de diferencia. Compara la fecha de entrada con 1969-12-31 a las 12 de la noche y devuelve el nmero de das de diferencia. Compara la fecha de entrada con hoy a las 12 de la noche y devuelve el nmero de das de diferencia. Devuelve 1 si la entrada es una fecha vlida; de lo contrario, devuelve 0.

Serie, Serie

Serie

Serie

Serie

DateGeneric DaysSince1970

Serie

Serie

sdk/date/ generic

DateGeneric DaysSinceToday

Serie

Serie

sdk/date/ generic

DateGenericIsDate

Serie

Serie

sdk/date/ generic

Las siguientes transformaciones aceptan series de fecha de entrada delimitada con el formato [AA]AA MM DD utilizando un delimitador cualquiera. Las series tambin pueden contener una entrada de hora con el formato HH:MM:SS:SSS, HH:MM:SS o HH:MM. DateYearFirst GetDay Serie Serie sdk/date/ YearFirst Devuelve el valor Da de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Mes de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Hora de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Hora de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Minutos de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Segundos de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS. Devuelve el valor Ao de la fecha proporcionada con el formato AAAAMMDD HH:MM:SS:SSS.

DateYearFirst GetMonth

Serie

Serie

sdk/date/ YearFirst

DateYearFirst GetTime

Serie

Serie

sdk/date/ YearFirst

DateYearFirst GetTimeHour

Serie

Serie

sdk/date/ YearFirst

DateYearFirst GetTimeMinute

Serie

Serie

sdk/date/ YearFirst

DateYearFirst GetTimeSecond

Serie

Serie

sdk/date/ YearFirst

DateYearFirst GetYear

Serie

Serie

sdk/date/ YearFirst

Captulo 8. Transformaciones y rutinas incorporadas

319

Transformacin DateYearFirst ToInfCLI

Tipo de entrada Serie

Tipo de salida Serie

Carpeta sdk/date/ YearFirst

Descripcin Devuelve una fecha de entrada con un formato adecuado para la carga utilizando Informix CLI. Devuelve una fecha de entrada con un formato adecuado para la carga utilizando Informix CLI con HH:MM:SS.SSS al final. Devuelve la fecha de entrada con un formato interno de InfoSphere DataStage. Devuelve la fecha de entrada con un formato interno de InfoSphere DataStage con HH:MM:SS.SSS al final. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando la etapa ODBC. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando la etapa ODBC con HH:MM:SS.SSS al final. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando Oracle OCI. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando Oracle OCI con HH:MM:SS al final. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando Sybase Open Client. Devuelve la fecha de entrada con un formato adecuado para la carga utilizando Sybase Open Client con HH:MM:SS.SSS al final. Devuelve la fecha de entrada con un formato AAAAMMDD HH:MM.SS:SSS. Compara dos fechas y devuelve el nmero de das de diferencia. Compara la fecha de entrada con 1899-12-31 a las 12 de la noche y devuelve el nmero de das de diferencia.

DateYearFirst ToInfCLIWithTime

Serie

Serie

sdk/date/ YearFirst

DateYearFirst ToInternal DateYearFirst ToInternalWithTime

Serie

Fecha

sdk/date/ YearFirst sdk/date/ YearFirst

Serie

Fecha

DateYearFirst ToODBC

Serie

Serie

sdk/date/ YearFirst

DateYearFirst ToODBCWithTime

Serie

Serie

sdk/date/ YearFirst

DateYearFirst ToOraOCI

Serie

Serie

sdk/date/ YearFirst

DateYearFirst ToOraOCIWithTime

Serie

Serie

sdk/date/ YearFirst

DateYearFirst ToSybaseOC

Serie

Serie

sdk/date/ YearFirst

DateYearFirst ToSybaseOC WithTime

Serie

Serie

sdk/date/ YearFirst

DataYearFirst ToTimeStamp DateYearFirstDiff

Serie

Serie

sdk/date/ YearFirst sdk/date/ YearFirst sdk/date/ YearFirst

Serie, Serie

Serie

DateYearFirst DaysSince1900

Serie

Serie

320

Gua del desarrollador de Server Job

Transformacin DateYearFirst DaysSince1970

Tipo de entrada Serie

Tipo de salida Serie

Carpeta sdk/date/ YearFirst

Descripcin Compara la fecha de entrada con 1969-12-31 a las 12 de la noche y devuelve el nmero de das de diferencia. Compara la fecha de entrada con hoy a las 12 de la noche y devuelve el nmero de das de diferencia. Devuelve 1 si la entrada es una fecha vlida; de lo contrario, devuelve 0.

DateYearFirst DaysSinceToday

Serie

Serie

sdk/date/ YearFirst

DateYearFirstIsDate

Serie

Serie

sdk/date/ YearFirst

Transformaciones de tipo de datos


Transformacin DataTypeAsciiPic9 DataTypeAsciiPic9V9 Tipo de entrada Serie Serie Tipo de salida Nmero Nmero Carpeta sdk/Data Type sdk/Data Type Descripcin Convierte ASCII PIC 9(n) en un entero. Convierte ASCII PIC 9(n) con un supuesto lugar decimal en un nmero con un lugar decimal real. Convierte ASCII PIC 9(n) con dos supuestos lugares decimales en un nmero con dos lugares decimales reales. Convierte ASCII PIC 9(n) con tres supuestos lugares decimales en un nmero con tres lugares decimales reales. Convierte ASCII PIC 9(n) con cuatro supuestos lugares decimales en un nmero con cuatro lugares decimales reales. Convierte una serie ASCII en EBCDIC. Convierte EBCDIC PIC 9(n) en un entero. Convierte EBCDIC PIC 9(n) con un supuesto lugar decimal en un nmero con un lugar decimal real.

DataTypeAscii Pic9V99

Serie

Nmero

sdk/Data Type

DataTypeAscii Pic9V999

Serie

Nmero

sdk/Data Type

DataTypeAscii Pic9V9999

Serie

Nmero

sdk/Data Type

DataTypeAscii toEbcdic DataTypeEbcdicPic9 DataTypeEbcdic Pic9V9

Serie Serie Serie

Serie Nmero Nmero

sdk/Data Type sdk/Data Type sdk/Data Type

Captulo 8. Transformaciones y rutinas incorporadas

321

Transformacin DataTypeEbcdic Pic9V99

Tipo de entrada Serie

Tipo de salida Nmero

Carpeta sdk/Data Type

Descripcin Convierte EBCDIC PIC 9(n) con dos supuestos lugares decimales en un nmero con dos lugares decimales reales. Convierte EBCDIC PIC 9(n) con tres supuestos lugares decimales en un nmero con tres lugares decimales reales. Convierte EBCDIC PIC 9(n) con cuatro supuestos lugares decimales en un nmero con cuatro lugares decimales reales. Convierte una serie EBCDIC en ASCII. Convierte ASCII o EBCDIC PIC 9(n) en un entero. Convierte ASCII o EBCDIC PIC 9(n) con un supuesto lugar decimal en un nmero con un lugar decimal real. Convierte ASCII o EBCDIC PIC 9(n) con dos supuestos lugares decimales en un nmero con dos lugares decimales reales. Convierte ASCII o EBCDIC PIC 9(n) con tres supuestos lugares decimales en un nmero con tres lugares decimales reales. Convierte ASCII o EBCDIC PIC 9(n) con cuatro supuestos lugares decimales en un nmero con cuatro lugares decimales reales. Convierte COBOL PIC COMP en un entero.

DataTypeEbcdic Pic9V999

Serie

Nmero

sdk/Data Type

DataTypeEbcdic Pic9V9999

Serie

Nmero

sdk/Data Type

DataTypeEbcdic toAscii DataTypePic9

Serie Serie

Serie Nmero

sdk/Data Type sdk/Data Type

DataTypePic9V9

Serie

Nmero

sdk/Data Type

DataTypePic9V99

Serie

Nmero

sdk/Data Type

DataTypePic9V999

Serie

Nmero

sdk/Data Type

DataTypePic9 V9999

Serie

Nmero

sdk/Data Type

DataTypePicComp

Serie

Nmero

sdk/Data Type

322

Gua del desarrollador de Server Job

Transformacin DataTypePicComp1

Tipo de entrada Serie

Tipo de salida Nmero

Carpeta sdk/Data Type

Descripcin Convierte COBOL PIC COMP-1 en un nmero real. Convierte COBOL PIC COMP-2 en un nmero real. Convierte un decimal empaquetado con signo COBOL PIC COMP-3 en un entero. Convierte un decimal empaquetado sin signo COBOL PIC COMP-3 en un entero. Convierte un decimal empaquetado sin signo COBOL PIC COMP-3 en un entero. Convierte un decimal empaquetado con signo COBOL PIC COMP-3 con un supuesto lugar decimal en un nmero con un lugar decimal real. Convierte un decimal empaquetado con signo COBOL PIC COMP-3 con dos supuestos lugares decimales en un nmero con dos lugares decimales reales. Convierte un decimal empaquetado con signo COBOL PIC COMP-3 con tres supuestos lugares decimales en un nmero con tres lugares decimales reales. Convierte un decimal empaquetado con signo COBOL PIC COMP-3 con cuatro supuestos lugares decimales en un nmero con cuatro lugares decimales reales.

DataTypePicComp2

Serie

Nmero

sdk/Data Type

DataTypePicComp3

Serie

Nmero

sdk/Data Type

DataTypePicComp3 Sin signo

Serie

Nmero

sdk/Data Type

DataTypePicComp3 UnsignedFast

Serie

Nmero

sdk/Data Type

DataTypePicComp3 V9

Serie

Nmero

sdk/Data Type

DataTypePicComp3 V99

Serie

Nmero

sdk/Data Type

DataTypePicComp3 V999

Serie

Nmero

sdk/Data Type

DataTypePicComp3 V9999

Serie

Nmero

sdk/Data Type

Captulo 8. Transformaciones y rutinas incorporadas

323

Transformacin DataTypePicComp Sin signo DataTypePicS9

Tipo de entrada Serie

Tipo de salida Nmero

Carpeta sdk/Data Type

Descripcin Convierte un binario sin signo en un entero. Convierte un tipo de datos COBOL PIC S9(n) decimal derecho dividido en zonas en formato ASCII o EBCDIC en un entero.

Serie

Nmero

sdk/Data Type

Transformaciones de gestin de claves


Transformacin KeyMgtGetMaxKey Tipo de entrada Serie, Serie, Serie, Serie Tipo de salida Serie Carpeta sdk/KeyMgt Descripcin Utiliza una columna, una tabla, una etapa ODBC y un nmero del 1 al 99 como descriptor de contexto exclusivo (en el trabajo). Devuelve el valor mximo de la columna especificada. Se utiliza normalmente para la gestin de claves. Genera nmeros secuenciales. Genera nmeros secuenciales en un entorno simultneo.

KeyMgtGetNextValue KeyMgtGetNextValue Concurrent

Serie literal Serie literal

Serie Serie

sdk/KeyMgt sdk/KeyMgt

Transformaciones de medidas: rea


Transformacin MeasureAreaAcresToSqFeet MeasureAreaAcresToSqMeters MeasureAreaSqFeetToAcres MeasureAreaSqFeetToSqInches Tipo de entrada Serie Serie Serie Serie Tipo de salida Serie Serie Serie Serie Carpeta sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area Descripcin Convierte acres en pies cuadrados. Convierte acres en metros cuadrados. Convierte pies cuadrados en acres. Convierte pies cuadrados en pulgadas cuadradas. Convierte pies cuadrados en metros cuadrados. Convierte pies cuadrados en millas cuadradas. Convierte pies cuadrados en yardas cuadradas.

MeasureAreaSqFeetToSqMeters

Serie

Serie

MeasureAreaSqFeetToSqMiles

Serie

Serie

MeasureAreaSqFeetToSqYards

Serie

Serie

324

Gua del desarrollador de Server Job

Transformacin MeasureAreaSqInchesToSqFeet

Tipo de entrada Serie

Tipo de salida Serie

Carpeta sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area sdk/Measure/ Area

Descripcin Convierte pulgadas cuadradas en pies cuadrados. Convierte pulgadas cuadradas en metros cuadrados. Convierte metros cuadrados en acres. Convierte metros cuadrados en pies cuadrados. Convierte metros cuadrados en pulgadas cuadradas. Convierte metros cuadrados en millas cuadradas. Convierte metros cuadrados en yardas cuadradas. Convierte millas cuadradas en pies cuadrados. Convierte millas cuadradas en metros cuadrados. Convierte yardas cuadradas en pies cuadrados. Convierte yardas cuadradas en metros cuadrados.

MeasureAreaSqInchesToSqMeters

Serie

Serie

MeasureAreaSqMeterToAcres MeasureAreaSqMetersToSqFeet

Serie Serie

Serie Serie

MeasureAreaSqMetersToSqInches

Serie

Serie

MeasureAreaSqMetersToSqMiles

Serie

Serie

MeasureAreaSqMetersToSqYards

Serie

Serie

MeasureAreaSqMilesToSqFeet

Serie

Serie

MeasureAreaSqMilesToSqMeters

Serie

Serie

MeasureAreaSqYardsToSqFeet

Serie

Serie

MeasureAreaSqYardsToSqMeters

Serie

Serie

Transformaciones de medidas: distancia


Transformacin MeasureDistance FeetToInches MeasureDistance FeetToMeters MeasureDistance FeetToMiles MeasureDistance FeetToYards MeasureDistance InchesToFeet MeasureDistance InchesToMeters MeasureDistance InchesToMiles Tipo de entrada Serie Serie Serie Serie Serie Serie Serie Tipo de salida Serie Serie Serie Serie Serie Serie Serie Carpeta sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance Descripcin Convierte pies en pulgadas. Convierte pies en metros. Convierte pies en millas. Convierte pies en yardas. Convierte pulgadas en pies. Convierte pulgadas en metros. Convierte pulgadas en millas.

Captulo 8. Transformaciones y rutinas incorporadas

325

Transformacin MeasureDistance InchesToYards MeasureDistance MetersToFeet MeasureDistance MetersToInches MeasureDistance MetersToMile MeasureDistance MetersToYard MeasureDistance MilesToFeet MeasureDistance MilesToInches MeasureDistance MilesToMeters MeasureDistance MilesToYards MeasureDistance YardsToFeet MeasureDistance YardsToInches MeasureDistance YardsToMeters MeasureDistance YardsToMiles

Tipo de entrada Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie

Tipo de salida Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie Serie

Carpeta sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance sdk/Measure/ Distance

Descripcin Convierte pulgadas en yardas. Convierte metros en pies. Convierte metros en pulgadas. Convierte metros en millas. Convierte metros en yardas. Convierte millas en pies. Convierte millas en pulgadas. Convierte millas en metros. Convierte millas en yardas. Convierte yardas en pies. Convierte yardas en pulgadas. Convierte yardas en metros. Convierte yardas en millas.

Transformaciones de medidas: temperatura


Transformacin MeasureTemp CelsiusToFahrenheit MeasureTemp FahrenheitToCelsius Tipo de entrada Serie Tipo de salida Serie Carpeta sdk/Measure/ Temp sdk/Measure/ Temp Descripcin Convierte grados centgrados en grados fahrenheit. Convierte grados fahrenheit en grados centgrados.

Serie

Serie

Transformaciones de medidas: tiempo


Transformacin MeasureTime DaysToSeconds MeasureTime HoursToSeconds Tipo de entrada Serie Serie Tipo de salida Serie Serie Carpeta sdk/Measure/Time sdk/Measure/Time Descripcin Convierte das en segundos. Convierte horas en segundos.

326

Gua del desarrollador de Server Job

Transformacin MeasureTime IsLeapYear

Tipo de entrada Serie

Tipo de salida Serie

Carpeta sdk/Measure/Time

Descripcin Devuelve 1 si la entrada de ao de 4 dgitos es un ao bisiesto; de lo contrario, devuelve 0. Convierte minutos en segundos. Convierte segundos en das. Convierte segundos en horas. Convierte segundos en minutos. Convierte segundos en semanas. Convierte segundos en aos. Convierte semanas en segundos. Convierte aos estndar en segundos.

MeasureTime MinutesTo Seconds MeasureTime SecondsToDays MeasureTime SecondsToHours MeasureTimeSeconds ToMinutes MeasureTime SecondsToWeeks MeasureTime SecondsToYears MeasureTime WeeksToSeconds MeasureTime YearsToSeconds

Serie Serie Serie Serie Serie Serie Serie Serie

Serie Serie Serie Serie Serie Serie Serie Serie

sdk/Measure/Time sdk/Measure/Time sdk/Measure/Time sdk/Measure/Time sdk/Measure/Time sdk/Measure/Time sdk/Measure/Time sdk/Measure/Time

Transformaciones de medidas: volumen


Transformacin MeasureVolume BarrelsLiquid ToCubicFeet MeasureVolume BarrelsLiquid ToGallons MeasureVolume BarrelsLiquid ToLiters MeasureVolume BarrelsPetrol ToGallons MeasureVolume BarrelsPetrol ToLiters MeasureVolume BarrelsPetrol ToCubicFeet MeasureVolume CubicFeet ToBarrelsLiquid Tipo de entrada Serie Tipo de salida Serie Carpeta Descripcin sdk/Measure/Volume Convierte barriles estadounidenses (lquido) en pies cbicos. sdk/Measure/Volume Convierte barriles estadounidenses (lquido) en galones estadounidenses. sdk/Measure/Volume Convierte barriles estadounidenses (lquido) en litros. sdk/Measure/Volume Convierte barriles estadounidenses (petrleo) en galones estadounidenses. sdk/Measure/Volume Convierte barriles estadounidenses (petrleo) en litros. sdk/Measure/Volume Convierte barriles estadounidenses (petrleo) en pies cbicos. sdk/Measure/Volume Convierte pies cbicos en barriles estadounidenses (lquido).
Captulo 8. Transformaciones y rutinas incorporadas

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

327

Transformacin MeasureVolume CubicFeet ToBarrelsPetrol MeasureVolume CubicFeet ToGallons MeasureVolume CubicFeet ToLiters MeasureVolume CubicFeet ToImpGallons MeasureVolume GallonsTo BarrelsLiquid

Tipo de entrada Serie

Tipo de salida Serie

Carpeta

Descripcin

sdk/Measure/Volume Convierte pies cbicos en barriles estadounidenses (petrleo). sdk/Measure/Volume Convierte pies cbicos en galones estadounidenses. sdk/Measure/Volume Convierte pies cbicos en litros. sdk/Measure/Volume Convierte pies cbicos en galones imperiales. sdk/Measure/Volume Convierte galones estadounidenses en barriles estadounidenses (lquido). sdk/Measure/Volume Convierte galones estadounidenses en barriles estadounidenses (petrleo). sdk/Measure/Volume Convierte galones estadounidenses en pies cbicos. sdk/Measure/Volume Convierte galones estadounidenses en litros. sdk/Measure/Volume Convierte litros en barriles estadounidenses (lquido). sdk/Measure/Volume Convierte litros en barriles estadounidenses (petrleo). sdk/Measure/Volume Convierte litros en pies cbicos. sdk/Measure/Volume Convierte litros en galones estadounidenses. sdk/Measure/Volume Convierte litros en galones imperiales. sdk/Measure/Volume Convierte galones imperiales en pies cbicos. sdk/Measure/Volume Convierte galones imperiales en litros.

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

MeasureVolume GallonsTo BarrelsPetrol

Serie

Serie

MeasureVolume GallonsTo CubicFeet MeasureVolume GallonsToLiters MeasureVolume LitersTo BarrelsLiquid MeasureVolume LitersTo BarrelsPetrol MeasureVolume LitersTo CubicFeet MeasureVolume LitersToGallons MeasureVolume LitersToGallons MeasureVolume ImpGallons ToCubicFeet MeasureVolume ImpGallons ToLiters

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie

Serie Serie

Serie Serie

Serie

Serie

328

Gua del desarrollador de Server Job

Transformaciones de medidas: peso


Transformacin MeasureWeightGrains ToGrams MeasureWeightGrams ToGrains MeasureWeightGrams ToOunces MeasureWeightGrams ToPennyWeight MeasureWeightGrams ToPounds MeasureWeightKilograms ToLongTons MeasureWeightKilograms ToShortTons MeasureWeightLongTons ToKilograms MeasureWeightLongTons ToPounds MeasureWeightOunces ToGrams MeasureWeightPennyWeight ToGrams MeasureWeightPounds ToGrams MeasureWeightPounds ToLongTons MeasureWeightPounds ToShortTons MeasureWeightShortTons ToKilograms MeasureWeightShortTons ToPounds Tipo de entrada Serie Serie Serie Serie Serie Serie Tipo de salida Serie Serie Serie Serie Serie Serie Carpeta sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight sdk/Measure/ Weight Descripcin Convierte granos en gramos. Convierte gramos en granos. Convierte gramos en onzas. Convierte gramos en masa de un penique. Convierte gramos en libras. Convierte kilogramos en toneladas largas. Convierte kilogramos en toneladas cortas. Convierte toneladas largas en kilogramos. Convierte toneladas largas en libras. Convierte onzas en gramos. Convierte masa de un penique en gramos. Convierte libras en gramos. Convierte libras en toneladas largas. Convierte libras en toneladas cortas. Convierte toneladas cortas en kilogramos. Convierte toneladas cortas en libras.

Serie

Serie

Serie

Serie

Serie Serie Serie

Serie Serie Serie

Serie Serie Serie Serie

Serie Serie Serie Serie

Serie

Serie

Transformaciones numricas
Transformacin NumericIsSigned Tipo de entrada Serie Tipo de salida Serie Carpeta sdk/Numeric Descripcin Devuelve 0 si la entrada es no numrica o cero, 1 para nmeros positivos y -1 para los nmeros negativos.

Captulo 8. Transformaciones y rutinas incorporadas

329

Transformacin NumericRound0

Tipo de entrada Serie

Tipo de salida Serie

Carpeta sdk/Numeric

Descripcin Devuelve el nmero entero ms prximo al nmero de entrada. Devuelve el nmero de entrada con una cifra decimal ms prximo. Devuelve el nmero de entrada con dos cifras decimales ms prximo. Devuelve el nmero de entrada con tres cifras decimales ms prximo. Devuelve el nmero de entrada con cuatro cifras decimales ms prximo.

NumericRound1

Serie

Serie

sdk/Numeric

NumericRound2

Serie

Serie

sdk/Numeric

NumericRound3

Serie

Serie

sdk/Numeric

NumericRound4

Serie

Serie

sdk/Numeric

Transformaciones del procesador de filas


Transformacin RowProcCompareWith PreviousValue Tipo de entrada Serie Tipo de salida Serie Carpeta sdk/RowProc Descripcin Compara el valor actual con el valor anterior. Devuelve 1 si son iguales; de lo contrario, devuelve 0. Slo puede utilizarse en un lugar en un trabajo. Devuelve el valor anterior que se ha pasado a esta transformacin y conserva la entrada actual para la siguiente referencia. Slo puede utilizarse en un lugar en un trabajo. Devuelve la suma en ejecucin de la entrada. Slo puede utilizarse en un lugar en un trabajo.

RowProcGetPreviousValue

Serie

Serie

sdk/RowProc

RowProcRunningTotal

Serie

Serie

sdk/RowProc

330

Gua del desarrollador de Server Job

Transformaciones del programa de utilidad


Transformacin UtilityAbortToLog Tipo de entrada Serie Tipo de salida Carpeta sdk/Utility Descripcin Hace que el trabajo termine y graba el mensaje proporcionado en el registro de errores graves del cliente del Director. Slo est indicada a efectos de desarrollo. Ejecuta el trabajo especificado y devuelve estadsticas de la ejecucin del trabajo. El trabajo se especifica por el nombre de trabajo, una lista de parmetros delimitados por el carcter |, un lmite de fila y un lmite de aviso. Las estadsticas se devuelven en una matriz. Extrae informacin de la salida de UtilityRunJob. Utiliza como argumentos la salida de UtilityRunJob, una accin y (de manera opcional) un nombre de enlace. Las acciones posibles son: LinkCount JobName JobCompletionStatus StartTimeEndTime UtilityMessageToLog Serie sdk/Utility Graba el mensaje proporcionado por el usuario en el registro en el cliente del Director. Graba un valor de columna en el registro en el cliente del Director.

UtilityRunJob

Serie, serie delimitada, nmero, nmero

Matriz

sdk/Utility

UtilityGetRunJobInfo

Salida del programa de utilidad RunJob, Serie, Serie

Serie

sdk/Utility

UtilityPrintColumn ValueToLog

Serie

sdk/Utility

Captulo 8. Transformaciones y rutinas incorporadas

331

Transformacin UtilityPrintHexValueToLog

Tipo de entrada Serie

Tipo de salida -

Carpeta sdk/Utility

Descripcin Convierte el valor suministrado y lo procesa como una serie. Convierte cada carcter de la serie en su equivalente hexadecimal ASCII y lo graba en el registro en el cliente del Director. Graba el mensaje proporcionado como un aviso en el registro en el cliente del Director. Ejecuta una bsqueda en una tabla hash. Utiliza como argumentos el nombre de la tabla hash, el valor de la clave hash y la posicin de columna. Devuelve el registro.

UtilityWarningToLog

Serie

UtilityHashLookup

Serie, Serie, Serie

Serie

sdk/Utility

Rutinas incorporadas
Hay tres tipos de rutinas que se suministran con IBM InfoSphere DataStage: v Subrutinas incorporadas anteriores/posteriores. Estas rutinas se almacenan en la carpeta Rutinas > Incorporadas > Anteriores/posteriores en el rbol de repositorio. Se compilan y estn listas para su uso como una subrutina anterior o posterior a la etapa o como una rutina anterior o posterior al trabajo. v Ejemplos de funciones de transformacin. Estas rutinas se almacenan en la carpeta Rutinas > Ejemplos > Funciones en el rbol de repositorio y se utilizan en las transformaciones incorporadas que se proporcionan con InfoSphere DataStage. Puede copiar estas rutinas y utilizarlas como base para sus propias funciones de transformacin escritas por el usuario. v Funciones de transformacin utilizadas por las transformaciones SDK. Estas son las rutinas que utilizan las transformaciones SDK del mismo tipo. Se almacenan en Rutina > sdk. El editor de expresiones no ofrece estas rutinas y deber utilizar la transformacin que tenga prioridad en la rutina (tal como se describe en Transformaciones incorporadas en la pgina 311). Puede ver las definiciones de estas rutinas utilizando el cliente del Diseador, pero no puede editarlas. Si es necesario, puede copiarlas y renombrarlas, as como editar las copias para trabajar en ellas.

Subrutinas anteriores y posteriores incorporadas


Hay varias subrutinas anteriores y posteriores incorporadas que se suministran con IBM InfoSphere DataStage: v DSSendMail. Esta rutina es un interludio al programa de correo de envo local. v DSWaitForFile. Esta rutina se llama para suspender un trabajo hasta que, o bien exista un trabajo denominado, o bien no exista.

332

Gua del desarrollador de Server Job

v DSJobReport. Esta rutina se puede llamar al final de un trabajo para grabar un informe de trabajo en un archivo. La rutina toma un argumento que comprende dos o tres elementos separados por puntos y comas como se explica a continuacin: Tipo de informe. 0, 1 o 2 para especificar detalles del informe. El tipo 0 produce una serie de texto que contiene hora de inicio/fin, tiempo transcurrido y estado del trabajo. El tipo 1 es un informe bsico pero tambin contiene informacin acerca de etapas y enlaces individuales dentro del trabajo. El tipo 2 produce una serie de texto que contiene un informe XML completo. Directorio. Especifica el directorio en el que se escribir el informe. Hoja de estilo XSL. Opcionalmente, especifica una hoja de estilo XSL para formatear un informe XML. Si el trabajo tena un identificador de alias, a continuacin, el informe se graba como alias_nombreTrabajo.txt o alias_nombreTrabajo.xml, en funcin del tipo de informe. Si el trabajo no tiene un, el informe se graba como nombreTrabajo_AAAAMMDD_HHMMSS.txt o nombreTrabajo_AAAAMMDD_HHMMSS.xml, en funcin del tipo de informe. v ExecDOS. Esta rutina ejecuta un mandato mediante un shell MS-DOS. El mandato ejecutado se especifica en el argumento de entrada de la rutina. v ExecDOSSilent. Como ExecDOS, pero no grana la lnea de mandatos en el registro de trabajo. v ExecTCL. Esta rutina ejecuta un mandato mediante un shell de motor de InfoSphere Information Server. El mandato ejecutado se especifica en el argumento de entrada de la rutina. v ExecSH. Esta rutina ejecuta un mandato mediante un shell Korn de UNIX. v ExecSHSilent. Como ExecSH, pero no graba la lnea de mandatos en el registro de trabajo. Estas rutinas aparecen en la lista de rutinas incorporadas disponibles cuando edita los campos Subrutina anterior a la etapa o Subrutina posterior a la etapa en una etapa Aggregator, Transformer o suplementaria, o los campos Subrutina anterior al trabajo o Subrutina posterior al trabajo en el recuadro de dilogo Propiedades del trabajo. Tambin puede copiar estas rutinas y utilizar el cdigo como base para sus propias subrutinas anteriores/posteriores. Si el soporte multilingstico est habilitado, deber estar informado sobre cualquier requisito de correlacin cuando utilice las rutinas ExecDOS y ExecSH (o ExecDOSSilent y ExecSHSilent). Si estas rutinas utilizan datos en determinados juegos de caracteres, ser su responsabilidad correlacionar los datos desde o hacia Unicode.

Funciones de transformacin de ejemplo


Estas son las funciones de transformacin de ejemplo que se proporcionan con IBM InfoSphere DataStage: v ConvertMonth. Transforma una entrada MONTH.TAG. El resultado depende del valor del segundo argumento: F (el primer da del mes) genera DATE.TAG. L (el ltimo da del mes) genera DATE.TAG. Q (el trimestre que contiene el mes) genera QUARTER.TAG. Y (el ao que contiene el mes) genera YEAR.TAG. v ConvertQuarter. Transforma una entrada QUARTER.TAG. El resultado depende del valor del segundo argumento: F (el primer da del mes) genera DATE.TAG. L (el ltimo da del mes) genera DATE.TAG. Y (el ao que contiene el mes) genera YEAR.TAG.

Captulo 8. Transformaciones y rutinas incorporadas

333

v ConvertTag. Transforma una entrada DATE.TAG. El resultado depende del valor del segundo argumento: I (nmero de da interno) genera una Fecha. W (la semana que contiene la fecha) genera WEEK.TAG. M (el mes que contiene la fecha) genera MONTH.TAG. Q (el trimestre que contiene la fecha) genera QUARTER.TAG. Y (el ao que contiene la fecha) genera YEAR.TAG. v ConvertWeek. Transforma una entrada WEEK.TAG en una fecha interna correspondiente a un da especfico de la semana. El resultado depende del valor del segundo argumento: 0 genera un lunes. 1 genera un martes. 2 genera un mircoles. 3 genera un jueves. 4 genera un viernes. 5 genera un sbado. 6 genera un domingo. Si la entrada no parece ser un WEEK.TAG vlido, se registra un error y se devuelve 0. v ConvertYear. Transforma una entrada YEAR.TAG. El resultado depende del valor del segundo argumento: F (el primer da del ao) genera DATE.TAG. L (el ltimo da del ao) genera DATE.TAG. v QuarterTag. Transforma una entrada de fecha en una serie QUARTER.TAG (AAAAQn). v Timestamp. Transforma una indicacin de fecha y hora (una serie con el formato AAAA-MM-DD HH:MM:SS) o una entrada de fecha. El resultado depende del valor del segundo argumento: TIMESTAMP genera una indicacin de fecha y hora igual a 00:00:00 a partir de una fecha. DATE genera una fecha interna a partir de una indicacin de fecha y hora (se omite la parte de hora). TIME genera una hora interna a partir de una indicacin de fecha y hora (se omite la parte de fecha). v WeekTag. Transforma una entrada de fecha en una serie WEEK.TAG (AAAAWnn).

334

Gua del desarrollador de Server Job

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File


Antes del Release 5.1, la etapa Hashed File slo tena un mtodo para almacenar filas en la memoria cach para la lectura (enlaces de referencia) y la grabacin (enlaces de salida). Este mtodo se denominaba almacenamiento en memoria cach privada de enlaces (y anteriormente, almacenamiento en memoria cach de etapas). Este mecanismo de memoria cach es una memoria cach privada por enlace. Como resultado, cada enlace de un trabajo que utiliza una etapa Hashed File debe asignar y gestionar recursos para dar soporte a la memoria cach. El compartimiento est permitido en un trabajo con una secuencia de datos individual, pero no entre trabajos o varias secuencias de datos en un trabajo. Esto da como resultado un uso significativo de recursos y unos tiempos de arranque poco eficaces (en el caso de los enlaces de referencia). Asimismo, como los almacenamientos intermedios de memoria cach de grabacin generan filas hasta que se llega al umbral, las filas en la memoria cach no se reflejan en la base de datos hasta que la memoria cach se desecha. Esto supone un problema para los diseos de trabajo que utilizan el mismo archivo hash para las actualizaciones y las bsquedas de referencia. IBM InfoSphere DataStage ofrece la opcin de v Almacenar los bloques en la memoria cach del servidor v Permitir que varios enlaces hagan referencia al mismo archivo hash v Hacer que las inserciones y las actualizaciones estn visibles para todos los procesos que tengan abierto el archivo El almacenamiento centralizado en memoria cach compartida de disco del sistema, de aqu en adelante denominado almacenamiento en memoria cach del sistema, reduce el uso de los recursos del sistema, al implementar slo una memoria cach que puede configurarse completamente y que da soporte a la lectura y la grabacin. El release 6.0 introdujo una opcin adicional denominada almacenamiento en memoria cach pblica de enlaces. Esta opcin permite que varias secuencias de datos de un trabajo utilicen el mismo archivo de memoria cach. El almacenamiento en memoria cach pblica de enlaces se desarroll para aprovechar el motor paralelo de InfoSphere DataStage que maximiza la eficacia con un multiprocesador simtrico (SMP) cuando utiliza un archivo de bsqueda. Las funciones que dan soporte al almacenamiento en memoria cach de disco se describen en InfoSphere DataStage Programmer's Guide. En estos temas se describen los mandatos de usuario, as como las prestaciones que se ofrecen al administrador de InfoSphere DataStage para ajustar varios valores de configuracin del sistema para maximizar el rendimiento basndose en la configuracin de hardware y los pasos de InfoSphere DataStage.

Funcionalidad de almacenamiento en ememoria cach de disco


El almacenamiento en memoria cach de disco proporciona la funcionalidad y las ventajas siguientes: v Da soporte a la actualizacin compartible o al acceso a archivos de grabacin en una secuencia de datos individual en un trabajo (almacenamiento en la memoria cach privada de enlaces) v Da soporte a la actualizacin compartible o al acceso a archivos de grabacin con varias secuencias de datos en un trabajo individual varios trabajos
Copyright IBM Corp. 1997, 2011

335

un trabajo que se ejecuta con el motor paralelo en SMP mientras se mantienen los archivos almacenados en la memoria cach (almacenamiento en la memoria cach pblica de enlaces) v Da soporte a la actualizacin compartible o al acceso a archivos de grabacin en los trabajos de un sistema mientras se mantienen los archivos almacenados en la memoria cach (almacenamiento en la memoria cach del sistema) v Permite la explotacin de las prestaciones de SMP que permiten varias secuencias de datos simultneas (almacenamiento en la memoria cach pblica de enlaces) v Da soporte al acceso rpido en memoria a los datos por parte de una aplicacin, incluidos los datos actualizados o que se acaban de crear v Da soporte nicamente al acceso en memoria a los datos actualizados o que se acaban de crear por otros procesos v Da soporte a los elementos ajustables que permiten al administrador configurar los algoritmos de memoria cach de disco para cumplir la configuracin del sistema y el tamao esperado de los archivos La siguiente funcionalidad no est soportada: v El almacenamiento en memoria cach de archivos con un tamao mayor de medio terabyte v El almacenamiento en memoria cach del sistema de archivos de tipo 1, 19, 25 ('rbol B') o 27 (particionado) v El almacenamiento en memoria cach de los archivos existentes con valores de separacin (tamaos de bloque) distintos de 1, 2, 4, 8, 16, 32 o 64 v Designacin automtica de archivos como almacenados en la memoria cach del sistema v Utilizacin de los programas de utilidad (copia de seguridad, restauracin, cambio de tamao y arreglo de archivo) en los archivos designados para que se utilicen en la memoria cach del sistema

Terminologa
En este documento se utiliza la siguiente terminologa: Trmino Significado bloque Un grupo de registros o filas. El motor del servidor pone los registros que ejecutan hash en el mismo nmero de grupo en un bloque. El tamao del bloque viene determinado por el valor SEPARATION de CREATE.FILE. almacenamiento intermedio de conjunto de bloques Una unidad de memoria en los segmentos compartidos del disco con un tamao de n k ms el tamao de la estructura de cabecera del conjunto de bloques. n puede ser 4, 8, 16 o 32. cadena libre de conjunto de bloques La cadena de almacenamientos intermedios de conjuntos de bloques sin utilizar disponible en alguno de los segmentos de disco compartido configurados. memoria cach Un subsistema en el que los datos que se utilizan con frecuencia estn disponibles para un acceso rpido. daemon de memoria cach Un proceso asncrono en segundo plano que realiza las grabaciones de estado de grabacin diferida.

336

Gua del desarrollador de Server Job

cadena de archivos de memoria cach Un conjunto de entradas de archivo de memoria cach que estn utilizadas (un archivo abierto) o sin utilizar. entrada de archivo de memoria cach Una estructura que define un archivo de motor de servidor y la informacin relacionada con su estado. nmero de dispositivo Un nmero exclusivo asociado con la particin (un dispositivo) en la que reside el i-node. Consulte tambin nmero de i-node. segmentos de memoria compartida de disco Los segmentos a los que se asigna la memoria cach del sistema de IBM InfoSphere DataStage. Esta rea se divide posteriormente en entradas de conjunto de bloques. archivo Un archivo nativo del motor de servidor que se crea con el mandato CREATE.FILE. desecho La hora a la que se libera un conjunto de bloques asignado actualmente, y puede obtenerse de un archivo y utilizarse para otro conjunto de bloques del mismo archivo o de otro diferente. estado incoherente El estado de un archivo en el que algunas grabaciones generadas por una aplicacin, pero no todas, se han grabado fsicamente en disco antes de que la aplicacin termine sin un archivo de cierre correcto. nmero de i-node Un nmero exclusivo asociado con cada nombre de archivo. Este nmero se utiliza para buscar una entrada en la tabla de i-nodes que proporciona informacin sobre el tipo, el tamao y la ubicacin del archivo, as como el ID de usuario del propietario del archivo. Consulte tambin nmero de dispositivo. bloque de desbordamiento Un bloque o un conjunto de bloques exclusivo en el que la parte de desbordamiento de los campos de un registro se almacena si todos los campos de datos del registro no entran en su grupo. pid Un identificador exclusivo de un proceso.

lectura previa El acto de leer uno o varios bloques de un archivo en la memoria cach antes de generar una solicitud para el bloque. HEAPCHUNK pblico Un conjunto consecutivo de conjuntos de bloques (bset) asignado como una unidad (128 K) a un servidor de archivos hash para una parte de una memoria cach pblica de enlaces. semforo Una estructura de sistema operativo que permite a los procesos modularse entre ellos en una hebra individual mediante un procedimiento. multiproceso simtrico (SMP) El proceso de programas de varios procesadores que comparten un sistema operativo y una memoria comunes. Una copia individual del sistema operativo est a cargo de todos los procesadores. En SMP, los recursos de hardware se comparten normalmente entre los procesadores. grabacin diferida Un bloque que hay actualmente en un conjunto de bloques que se ha modificado respecto a la

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

337

imagen en disco y est visible para las dems aplicaciones, aunque no se ha actualizado en el archivo de disco. El archivo est en un estado incoherente hasta que se hayan grabado todos los bloques de grabacin diferida.

Secuencias de datos mltiples


En IBM InfoSphere DataStage, se producen secuencias de datos mltiples en uno de estos tres estados: v Cuando se procesan secuencias de datos mltiples en el mismo trabajo v Cuando se procesa un origen de datos individual de gran tamao en varios conjuntos particionados utilizando el motor paralelo de InfoSphere DataStage v Cuando se ejecutan varios trabajos que hacen referencia al mismo archivo Para aumentar la eficacia de los procesos, puede procesar varias secuencias de datos con un solo archivo de bsqueda comn almacenado en memoria cach.

Directrices para elegir un tipo de memoria cach


Utilice las siguientes directrices cuando seleccione el tipo de memoria cach que desea utilizar: Hasta Uso Compartir entre archivos de referencia y de salida en una secuencia de datos individual Almacenamiento en la memoria cach privada de enlaces Compartir entre varias secuencias de datos o en un contenedor que se ejecuta con el motor paralelo Almacenamiento en la memoria cach pblica de enlaces Compartir entre varios trabajos que se ejecutan simultneamente o en paralelo utilizando el mismo archivo de referencia o de salida Almacenamiento en la memoria cach del sistema

Preparacin de la memoria cach privada de enlaces


Acerca de esta tarea
En el cliente del Administrador, seleccione un proyecto en la pgina Proyectos. Pulse Propiedades. En el separador Elementos ajustables, establezca Tamao de memoria cach de lectura (para los archivos de consultas) o Tamao de memoria cach de grabacin (para los archivos de salida) en el lmite superior adecuado para el trabajo y los recursos. IBM InfoSphere DataStage no utiliza toda la memoria especificada de una vez. En su lugar, utiliza la memoria en segmentos hasta el lmite especificado. El valor predeterminado de cada uno es 128 MB.

Preparacin para el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema en las plataformas UNIX
Acerca de esta tarea
De forma predeterminada, IBM InfoSphere DataStage se proporciona con el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema inhabilitados. Para habilitar el almacenamiento en la memoria cach de disco, el administrador de InfoSphere DataStage debe realizar los pasos siguientes.

Procedimiento
1. Inicie una sesin como dsadm.

338

Gua del desarrollador de Server Job

2. Utilice el siguiente mandato para cambiar el directorio actual al directorio de instalacin del motor de InfoSphere Information Server.
cd cat /.dshome

Edite el archivo uvconfig que se encuentra en el directorio del motor de servidor (especificado en el archivo /.dshome), y establezca los elementos ajustables de la memoria cach de disco en los valores que desee. Como mnimo, establezca el elemento ajustable DISKCACHE en un tamao deseado en megabytes. (Consulte Ajuste de la memoria cach pblica de enlaces y la memoria cach del sistema en la pgina 351.) Nota: Los valores predeterminados sirven como un conjunto razonable de valores iniciales. 3. Asegrese de que no haya conexiones activas del cliente de InfoSphere DataStage ni usuarios interactivos. 4. Detenga el motor de servidor de la siguiente manera:
./bin/uv -admin -stop

Nota: No puede continuar en el paso 5 hasta que todas las aplicaciones de InfoSphere DataStage hayan dejado de ejecutarse. Utilice el siguiente mandato para comprobar que todas las aplicaciones de InfoSphere DataStage han dejado de ejecutarse:
./bin/uv -admin -info

Si todas las aplicaciones se han detenido, la salida es:


DSEngine, rev xxxx not currently running

5. Genere una nueva configuracin del motor de la siguiente manera:


./bin/uv -admin -regen

6. Reinicie el motor de servidor de la siguiente manera:


./bin/uv -admin -start

Resultados
El almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema estn ahora habilitados. Una vez habilitado el almacenamiento en la memoria cach, los diseos de trabajo nuevos o existentes pueden utilizar esta funcionalidad. Consulte Utilizacin de la memoria cach pblica de enlaces en la pgina 342 o Utilizacin de la memoria cach del sistema en la pgina 342. Si recibe un error del sistema operativo de host indicando que no se han podido asignar los segmentos de InfoSphere DataStage, revise la informacin sobre el kernel del sistema operativo y realice los cambios necesarios en ellos.

Requisitos especiales de AIX para determinar el tamao de la memoria cach de disco


Acerca de esta tarea
Debido al modelo del espacio de direcciones predeterminado para los procesos de 32 bits en los sistemas AIX, es posible que necesite una preparacin adicional para todas las opciones de memoria cach de disco. La asignacin de espacio predeterminada es de 128 megabytes. La asignacin mxima ptima es de 512 megabytes. Si desea asignar ms de 128 megabytes de espacio para la memoria cach de disco en un sistema AIX, siga estos pasos:

Procedimiento
1. Inicie una sesin como dsadm.
Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

339

2. Utilice el siguiente mandato para cambiar el directorio actual al directorio de instalacin del motor de InfoSphere Information Server:
cd cat /.dshome

3. Edite el archivo uvconfig con un editor de texto como vi. a. Cambiar DMEMOFF a 0x90000000 b. Cambiar PMEMOFF a 0xa0000000 Guarde el archivo uvconfig. 4. Asegrese de que no haya conexiones activas del cliente de IBM InfoSphere DataStage ni usuarios interactivos. 5. Detenga el motor de servidor de la siguiente manera:
. ./dsenv ./bin/uv -admin -stop

Nota: No puede continuar en el paso 6 hasta que todas las aplicaciones de InfoSphere DataStage hayan dejado de ejecutarse. Utilice el siguiente mandato para comprobar que todas las aplicaciones de InfoSphere DataStage han dejado de ejecutarse:
./bin/uv -admin -info

Si todas las aplicaciones se han detenido, la salida es:


DSENGINE, rev xxxx not currently running

6. Genere una nueva configuracin del motor de la siguiente manera:


./bin/uv -admin -regen

Si el mandato es satisfactorio, la salida es:


uvregen: reconfiguration complete, disk segment size is xxxxxxx

7. Aada los siguientes valores de entorno al archivo .dsenv:


LDR_CNTRL=MAXDATA=0x30000000;exportar LDR_CNTRL

8. Aplique los nuevos valores de entorno ejecutando


. ./dsenv

9. Reinicie el motor de servidor de la siguiente manera:


./bin/uv -admin -start

Nota: Estos valores pueden afectar a la cantidad de memoria utilizada para las etapas suplementarias que hacen un uso intensivo de la memoria, y este tipo de etapas puede limitar la cantidad de memoria disponible para la memoria cach.

Preparacin para el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema en las plataformas Windows
Acerca de esta tarea
De forma predeterminada, IBM InfoSphere DataStage se proporciona con el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema inhabilitados. Para habilitar el almacenamiento en la memoria cach de disco, el administrador de InfoSphere DataStage debe realizar los pasos siguientes.

Procedimiento
1. Inicie una sesin como administrador de Windows. 2. Utilizando un editor de texto como, por ejemplo, Notepad, edite el archivo uvconfig que se encuentra en el directorio del motor de servidor y establezca los elementos ajustables de la memoria cach de

340

Gua del desarrollador de Server Job

disco en los valores que desee. Como mnimo, establezca el elemento ajustable DISKCACHE en un tamao deseado en megabytes. (Consulte Ajuste de la memoria cach pblica de enlaces y la memoria cach del sistema en la pgina 351.) Nota: Los valores predeterminados sirven como un conjunto razonable de valores iniciales. 3. Asegrese de que no haya conexiones activas del cliente de InfoSphere DataStage ni usuarios interactivos. 4. Detenga el motor de servidor de la siguiente manera: a. Seleccione Inicio > Configuracin > Panel de control > IBM InfoSphere Information Server. Aparece el recuadro de dilogo Panel de control de InfoSphere DataStage. b. Pulse Detener todos los servicios y pulse S como respuesta al mensaje de que se detendrn todos los mensajes de los Servicios de InfoSphere DataStage. c. Pulse Aceptar para salir del Panel de control. Nota: No puede continuar en el paso 5 hasta que todas las aplicaciones de InfoSphere DataStage hayan dejado de ejecutarse. Para comprobar que no se est ejecutando ninguna aplicacin de InfoSphere DataStage, consulte el separador Procesos en el gestor de tareas. No debe aparecer ninguna entrada denominada uvsh ni entradas que empiecen por las letras ds. Nota: Genere un nuevo archivo de configuracin del motor de la siguiente manera: En el indicador de mandatos de Windows NT, cambie al directorio del motor de servidor y emita el siguiente mandato:
C:\IBM\InformationServer\Server\DSEngine\bin\uvregen.exe

donde C:\IBM\InformationServer\Server\DSEngine es la ubicacin del motor de servidor instalado. 5. Reinicie el motor de servidor de la siguiente manera: a. Seleccione Inicio > Configuracin > Panel de control > IBM InfoSphere Information Server. Aparecer el recuadro de dilogo Panel de control de InfoSphere DataStage. b. Pulse Iniciar todos los servicios y pulse S como respuesta al mensaje de que se iniciarn todos los servicios de InfoSphere DataStage. c. Pulse Aceptar para salir del Panel de control de InfoSphere DataStage. Nota: Si recibe un error del sistema operativo de host indicando que no se han podido asignar los segmentos de InfoSphere DataStage, revise la informacin sobre el kernel del sistema operativo y realice los cambios necesarios en ellos.

Resultados
El almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema estn ahora habilitados. Una vez habilitado el almacenamiento en la memoria cach, los diseos de trabajo nuevos o existentes pueden utilizar esta funcionalidad. Consulte Utilizacin de la memoria cach pblica de enlaces en la pgina 342 o Utilizacin de la memoria cach del sistema en la pgina 342.

Utilizacin de la memoria cach privada de enlaces


El motor de servidor utiliza el espacio privado si se cumple lo siguiente: v El almacenamiento en memoria cach de disco est habilitado (Habilitado o Habilitado, bloquear para actualizaciones en la lista desplegable Precargar archivo en memoria en el separador Salida del recuadro de dilogo Etapa Hashed File)

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

341

v Habilitar compartimiento de memoria cach de archivos hash no se ha seleccionado en el separador General del trabajo (Editar > Propiedades del trabajo) antes de la compilacin. De forma predeterminada, Habilitar compartimiento de memoria cach de archivos hash no est seleccionado. Si se cumplen todas estas condiciones, las nuevas aplicaciones utilizan el almacenamiento en memoria cach privada de enlaces. Los mensajes de registro de tiempo de ejecucin hacen referencia al espacio privado de enlaces. Si se vuelve a compilar una aplicacin existente, puede ejecutarse con un archivo de registro diferente. Un trabajo con una secuencia individual funciona de la misma forma que con el release anterior, pero los mensajes de registro de tiempo de ejecucin ahora hacen referencia al espacio privado de enlaces.

Utilizacin de la memoria cach pblica de enlaces


El motor de servidor utiliza el espacio pblico si se cumple todo lo siguiente: v El almacenamiento en memoria cach de disco est habilitado (Habilitado o Habilitado, bloquear para actualizaciones en la lista desplegable Precargar archivo en memoria en el separador Salida del recuadro de dilogo Etapa Hashed File). v Habilitar compartimiento de memoria cach de archivos hash se ha seleccionado en el separador General del trabajo (Editar > Propiedades del trabajo) antes de la compilacin. De forma predeterminada, Habilitar compartimiento de memoria cach de archivos hash no est seleccionado. v El almacenamiento en memoria cach de disco est activado en el archivo uvconfig en el servidor (consulte Ajuste de la memoria cach pblica de enlaces y la memoria cach del sistema en la pgina 351). v El archivo de bsqueda se ejecutar en ms de una secuencia, ya sea en varias secuencias de datos en el mismo trabajo o en conjuntos particionados utilizando el motor paralelo de IBM InfoSphere DataStage. Si alguna de las tres condiciones anteriores no se cumple, se utiliza el almacenamiento en memoria cach privada de enlaces. Si se cumplen todas estas condiciones, las nuevas aplicaciones utilizan el almacenamiento en memoria cach pblica de enlaces. Los mensajes de registro de tiempo de ejecucin hacen referencia al espacio pblico de enlaces. Para obtener el estado de la memoria cach de disco, consulte Obtencin del estado en la pgina 344.

Utilizacin de la memoria cach del sistema


Cuando se inicia un proceso de IBM InfoSphere DataStage, el conjunto de segmentos de memoria compartida que mantiene la memoria cach de disco est visible para el proceso. Para la memoria cach de disco, se recomienda al administrador utilizar menos del mximo de memoria cach de disco compartida permitida, para que las aplicaciones puedan ejecutarse en el espacio de trabajo restante. El diseo de los segmentos de memoria cach de disco compartida permite un acceso de actualizacin serializado y eficaz a la lista de bloques en la memoria cach para cada archivo (i-node y dispositivo).

Creacin de un archivo hash para el almacenamiento en memoria cach del sistema


Acerca de esta tarea
Para utilizar la memoria cach del sistema en la etapa Hashed File, debe crear un archivo con los atributos de memoria cach "grabacin inmediata" o "grabacin diferida". Puede crear este archivo

342

Gua del desarrollador de Server Job

seleccionando Permitir memoria cach de grabacin de la etapa en la pgina Entrada del recuadro de dilogo Etapa Hashed File. Especifique los atributos que desee en los recuadros de dilogo Opciones de creacin de archivo. Este recuadro de dilogo incluye el recuadro de lista desplegable Atributos de memoria cach. La lista desplegable tiene las siguientes entradas: v NINGUNO. No asigna ningn atributo de memoria cach especial. Este es el valor predeterminado. v GRABACIN DIFERIDA. Habilita el almacenamiento en memoria cach del archivo especificado utilizando la actualizacin bajo demanda o la actualizacin lenta. (En el archivo uvconfig, si se habilita DCWRITEDAEMON, se habilita la actualizacin lenta. Consulte Ajuste de la memoria cach pblica de enlaces y la memoria cach del sistema en la pgina 351). v GRABACIN INMEDIATA. Habilita el almacenamiento en memoria cach del archivo especificado utilizando grabaciones sncronas.

Mandatos del motor de servidor


El administrador de IBM InfoSphere DataStage puede administrar y supervisar el subsistema de memoria cach del sistema mediante la interfaz de lnea de mandatos del motor de servidor, tal como se describe a continuacin. Para utilizar alguno de estos mandatos, antes de ejecutar un trabajo o despus de ejecutar un trabajo, cree definiciones de rutinas anteriores al trabajo o posteriores al trabajo. Consulte la seccin Captulo 6, Programacin en IBM InfoSphere DataStage, en la pgina 135 para obtener informacin adicional.

Creacin de archivos hash nuevos y alteracin de archivos hash existentes


El siguiente mandato crea un nuevo archivo has en memoria cach:
CREATE.FILE

El mandato CREATE.FILE se ha ampliado con dos opciones, WRITE.CACHE y WRITE.CACHE.DEFER, si el archivo va a utilizar la memoria cach de disco compartida. Estas opciones tienen los siguientes significados: Opcin Descripcin WRITE.CACHE Almacena en la memoria cach los archivos para las lecturas y grabaciones con grabaciones inmediatas. WRITE.CACHE.DEFER Almacena en la memoria cach los archivos para las lecturas y grabaciones con las grabaciones diferidas hasta el cierre. Nota: El tamao de bloque del archivo debe ser 1 KB, 2 KB, 4 KB, 8 KB, 16 KB o 32 KB. Este tamao se controla estableciendo la separacin de archivos en 2, 4, 8, 16, 32 o 64, respectivamente. El siguiente mandato cambia la modalidad de un archivo hash existente:
SET.MODE nombre_archivo [READ.ONLY | READ.WRITE | WRITE.CACHE | WRITE.CACHE.DEFER | INFORM]

El mandato tiene las opciones siguientes: Opcin Descripcin READ.ONLY Impone el archivo para que sea de slo lectura y almacena las lecturas en la memoria cach.
Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

343

READ.WRITE Restaura el archivo a la modalidad de lectura/grabacin normal. ste es el valor predeterminado. WRITE.CACHE Almacena en la memoria cach los archivos para las lecturas y grabaciones con grabaciones inmediatas. WRITE.CACHE.DEFER Almacena en la memoria cach los archivos para las lecturas y grabaciones con las grabaciones diferidas hasta el cierre. INFORM Muestra el valor actual del campo "readonly" en la cabecera. Nota: El tamao de bloque del archivo debe ser 1 KB, 2 KB, 4 KB, 8 KB, 16 KB o 32 KB. Este tamao se controla estableciendo la separacin de archivos en 2, 4, 8, 16, 32 o 64, respectivamente.

Obtencin del estado


El administrador (o el usuario) puede obtener el estado actual de la memoria cach de disco utilizando el siguiente mandato:
LIST.FILE.CACHE [DEVICE xxx INODE yyy | FILE nombre | [EVERY]] [[DETAIL][MRURO][MRUWD]]

Nota: Este mandato est disponible para el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema. El mandato tiene las opciones siguientes: Opcin Descripcin DEVICE xxx INODE yyy Proporciona informacin para el archivo de memoria cach asociado con el nmero de dispositivo exclusivo y el nmero de i-node en el que se encuentra el archivo almacenado en memoria cach. xxx e yyy son decimales, a menos que empiecen por 0[X|x], lo que indica que son hexadecimales. FILE nombre Proporciona informacin para el archivo almacenado en memoria cach denominado. EVERY Proporciona informacin sobre todos los archivos abiertos. DETAIL Proporciona informacin adicional. MRURO Lista todos los conjuntos de bloques en la cola de conjuntos de bloques de slo lectura de la memoria cach del archivo. Estos conjuntos de bloques aparecen al final de todas las entradas del archivo de memoria cach, una entrada por lnea. MRUWD Lista cada conjunto de bloques en la cola de grabacin diferida del archivo. Si se ejecuta el daemon de memoria cach de disco, aparece la siguiente lnea primero.
DAEMON.FILE.CACHE daemon active with pause of x, pid of y

344

Gua del desarrollador de Server Job

donde x es el intervalo de pausa en milisegundos e y es la identificacin del ID de proceso. Para obtener ms informacin, consulte el apartado Inicio y detencin del daemon de memoria cach en la pgina 350. Un proceso puede ser propietario de uno o varios de los siguientes semforos: solicitud de daemon, cadena libre de conjunto de bloques y cadena de archivos de memoria cach. Si es propietario de ms de uno, se generan las lneas correspondientes.
daemon request semaphore held by y blockset freechain semaphore held by y cache file chain semaphore held by y

donde y es la identificacin del ID de proceso. Cuando se ejecuta este mandato, dos lneas muestran el estado general de la memoria cach. Por ejemplo,
fileentries 11 blocksets 61 freechain 61 flushedro 50 flushedwd 32 blockkhits 23292

El significado de la informacin de estado es el siguiente: Categora Significado fileentries Nmero de entradas del archivo de memoria cach. blocksets Nmero total de conjuntos de bloques en la memoria cach de disco. freechain Nmero de conjuntos de bloques disponibles actualmente para su uso. flushedro Nmero total de conjuntos de bloques de slo lectura desechados. flushedwd Nmero total de conjuntos de bloques de grabacin diferida desechados. blockhits Nmero total de bloques encontrados en la memoria cach. Si se especifica DETAIL, cuatro lneas adicionales proporcionan el estado detallado de la memoria cach de disco:
blocksize 16384 arraysize 256 flushpc 80 maxpc 40 catpc 50

nophyread 29

nophywrite 445

nobsetwhits 4473

El significado del estado detallado es el siguiente: Categora Significado

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

345

blocksize Tamao configurado del almacenamiento intermedio del conjunto de bloques. Consulte DCBLOCKSIZE. arraysize Nmero configurado de matrices por entrada de archivo de memoria cach. Consulte DCMODULUS. flushpc Porcentaje de flushpc configurado. Consulte DCFLUSHPCT. maxpc Porcentaje de maxpc configurado. Consulte DCMAXPCT. catpc Porcentaje de catpc configurado. Consulte DCCATALOGPCT.

nophyread Nmero total de lecturas realizadas en el sistema operativo. nophywrite Nmero total de grabaciones realizadas en el sistema operativo. nobsetwhits Nmero total de conjuntos de bloques encontrados en la memoria cach. Se proporciona la siguiente informacin para cada archivo:
Device... 8912917 Inode... open 1297708 1 openwd 1 c C t D r W d 1 time 11:46:17 fullname tress/REL7.DY.1/DATA.30

blocksets 12

bsetswd 3

flushedro 0

flushedwd 144

bsethits 5667

hblockf 0x30000

El significado de esta informacin es el siguiente: Categora Significado Device Nmero que identifica la particin lgica del disco donde se encuentra el sistema de archivos. Inode Nmero que identifica el archivo al que se est accediendo. open Nmero de veces que se ha abierto actualmente el archivo.

openwd Nmero de veces que se ha abierto actualmente el archivo con grabacin diferida. c El estado del catlogo del archivo. v C si el archivo est catalogado. v A espacio si no lo est. El tipo de archivo: v D representa datos de tipo 30 v O representa un desbordamiento de tipo 30 v S representa un archivo pblico de enlace de IBM InfoSphere DataStage v A espacio representa un archivo hash r El estado de lectura/grabacin del archivo: v R representa de slo lectura
Gua del desarrollador de Server Job

346

v W representa de grabacin diferida v A espacio representa otros estados d El estado del daemon de memoria cach. El valor es v 1 si el daemon de memoria cach supervisa de forma activa el estado del archivo v ? si el daemon ha terminado anormalmente v A espacio si el daemon de memoria cach no supervisa de forma activa el estado del archivo y el archivo no ha terminado anormalmente La hora a la que se ha abierto el archivo.

time

fullname Los ltimos 23 bytes de la va de acceso completa. blocksets El nmero de conjuntos de bloques que utiliza actualmente este archivo. bsetswd El nmero de conjuntos de bloques que hay actualmente con al menos un bloque de grabacin diferida. flushedro El nmero de conjuntos de bloques de slo lectura que se han desechado. flushedwd El nmero de conjuntos de bloques desechados que tenan grabaciones diferidas. bsethits El nmero de conjuntos de bloques encontrados en la memoria cach de este archivo. hblockf El nmero de bloque mximo en el archivo expresado en hexadecimales. Si un semforo de entrada de archivos utilizado para este archivo de memoria cach est actualmente en espera, se genera una lnea con la siguiente informacin:
this cache file entry semaphore (x) held by y

donde x es el nmero del semforo e y es el ID de proceso. Si se especifica DETAIL, se muestra la informacin de estado del archivo actual.
0xbaseblock 0 10000 20000 inset 8 8 8 mru WD RO latch 0x0 0x0 0x80000000 cntovf 0 0 0 writedef 0x80000000 0x0 0x0 time 11:46:17 11:46:17 11:46:17

Para cada entrada del conjunto de bloques, el significado de esta informacin es el siguiente: Categora Significado 0xbaseblock El nmero del bloque en hexadecimales (con el prefijo 0x). inset mru El nmero de bloques en este conjunto. El estado de slo lectura o grabacin diferida: v WD para la lista de grabacin diferida del archivo de memoria cach
Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

347

v RO para la lista de slo lectura del archivo de memoria cach latched Cuatro caracteres hexadecimales que muestran los valores de cierre (prefijo 0x), con 1 bit para cada bloque cerrado en el conjunto de bloques actual de izquierda a derecha. cntovf El nmero de procesos que hacen referencia a un grupo de desbordamiento en este conjunto de bloques. writedef Cuatro caracteres hexadecimales que muestran los valores diferido (prefijo 0x), con 1 bit para cada bloque en el conjunto de bloques actual de izquierda a derecha. time La hora a la que se ha hecho referencia por ltima vez al conjunto de bloques.

Si un semforo de matriz de archivos de memoria cach correspondiente a un conjunto de bloques mostrado est retenido actualmente por un proceso, se genera una lnea con la siguiente informacin.
Array entry z has cache file array semaphore (x) held by y

donde x es el nmero del semforo, y es el ID de proceso y z es el nmero de entrada de la matriz. Si se especifica DETAIL y se aplica un almacenamiento en memoria cach pblica de enlaces, se proporciona esta informacin adicional. Por ejemplo:
bset 0x4001 first of 8 bsets make up this public HEAPCHUNK next 247 public HEAPCHUNKs of 8 bsets are consecutive bset 0x7C4001 first of 2 bsets make up this public HEAPCHUNK

El ejemplo anterior indica que el archivo pblico de enlace est utilizando 248 HEAPCHUNK de 128 K cada uno y 1 HEAPCHUNK de 32 K Tambin hay disponible un segundo formato de este mandato.
LIST.FILE.CACHE [DEVICE xxx INODE yyy|FILE name] BLOCK zzz [OVER.30]

Cuando se ejecuta este mandato, se muestran un vuelco del bloque en hexadecimal y las claves de registro. Si desea un bloque de desbordamiento de un archivo de tipo 30, especifique la opcin OVER.30. Despus de dos lneas de cabecera, se muestran cada 64 bytes de datos en una lnea, con todas las lneas cero omitidas. Para cada clave, se genera una lnea. La clave es un valor de hasta 511 bytes. El vuelco termina cuando una clave tiene ms de 511 bytes. xxx, yyy y zzz son decimales, a menos que empiecen por 0[X|x], lo que indica que son hexadecimales.

Cambio del estado


El administrador de IBM InfoSphere DataStage puede cambiar el estado de la memoria cach de disco compartida. Nota: Este mandato est disponible para el almacenamiento en la memoria cach pblica de enlaces y el almacenamiento en la memoria cach del sistema. Nota: Debe haber iniciado una sesin en la cuenta dshome para poder cambiar el estado. Consulte Inicio de sesin en la cuenta dshome en la pgina 351 para obtener ms informacin sobre cmo iniciar una sesin en la cuenta dshome. El mandato es
CLEAR.FILE.CACHE [[FILE nombre_archivo [GROUP zzz]] [FORCEWRITE | FLUSHRO | CLOSE | CLEAR.STAT]

348

Gua del desarrollador de Server Job

| ALL| DCFILE | ENTRY | ARRAY | FREECHAIN | DAEMON] [USER x | SEMNO y] [STOP {DAEMON}] [ABORT] {DETAIL}

El mandato tiene las opciones siguientes: Opciones Descripcin FILE nombre_archivo Nombra el archivo para el que se va a cambiar el estado. Si no se especifica, se cambia el estado de todos los archivos de memoria cach. GROUP zzz Identifica el nmero de grupo para el que se va a cambiar el estado. Si no se especifica, se cambia el estado de todos los grupos. FORCEWRITE Hace que se graben todas las grabaciones diferidas. FLUSHRO Libera los conjuntos de bloques de slo lectura de la memoria cach, establece la indicacin de fecha y hora en 0, y coloca una entrada al final de la cadena utilizada ms recientemente. CLOSE En colaboracin con FORCEWRITE, coloca entradas en la cadena libre de conjuntos de bloques y cierra la entrada de archivo de memoria cach designada. CLEAR.STAT Borra las estadsticas de un determinado archivo o de toda la memoria cach. TODOS Libera todos los semforos. ALL es mutuamente excluyente con DCFILE, ENTRY, ARRAY, FREECHAIN y DAEMON. DCFILE Libera el semforo de cadena de archivos de memoria cach. DCFILE es mutuamente excluyente con ALL, pero puede incluirse en combinacin con ENTRY, ARRAY, FREECHAIN o DAEMON. ENTRY Libera el semforo de entrada de archivo de memoria cach. ENTRY es mutuamente excluyente con ALL, pero puede incluirse en combinacin con DCFILE, ARRAY, FREECHAIN o DAEMON. ARRAY Libera el semforo de matriz de archivos de memoria cach. ARRAY es mutuamente excluyente con ALL, pero puede incluirse en combinacin con DCFILE, ENTRY, FREECHAIN o DAEMON. FREECHAIN Libera el semforo de cadena libre de conjuntos de bloques. FREECHAIN es mutuamente excluyente con ALL, pero puede incluirse en combinacin con DCFILE, ENTRY, ARRAY o DAEMON. DAEMON Libera el semforo de daemon de memoria cach. DAEMON es mutuamente excluyente con ALL, pero puede incluirse en combinacin con DCFILE, ENTRY, ARRAY o FREECHAIN. USER x Identifica el ID de proceso del usuario que es propietario del semforo que se va a liberar. Si se omite, se suponen todos los usuarios. USER puede especificarse con ALL, DCFILE, ENTRY, ARRAY, FREECHAIN y DAEMON para limitar estas opciones a un usuario especfico.

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

349

SEMNO y Especifica el nmero de semforos de matriz o entrada que se van a liberar. Tambin debe especificarse ENTRY o ARRAY. Si se omite, se suponen todos los semforos de matriz o entrada. STOP {DAEMON} Detiene el daemon de grabacin asncrona de la memoria cach de disco. ABORT [DETAIL] Detiene todo, desecha todos los archivos, borra todos los semforos y estadsticas, y detiene el daemon. Si se especifica DETAIL, se muestran los pasos. Si se especifica ABORT, DETAIL es el nico otro parmetro permitido.

Colocacin de los archivos de forma permanente en la memoria cach de disco


El administrador puede colocar archivos especficos de forma permanente en la memoria cach de disco con el siguiente mandato del motor de servidor:
CATALOG.FILE.CACHE nombre_archivo {PRE.LOAD|WRITE.DEFER}

El mandato contiene los siguientes componentes: Componentes Descripcin FILE nombre_archivo Nombra el archivo que se va a colocar de forma permanente en la memoria cach de disco. PRE.LOAD Carga los datos del archivo en la memoria cach. WRITE.DEFER Difiere la grabacin en el archivo. El administrador puede precargar un archivo en modalidad de slo lectura o de grabacin en memoria cach en la memoria cach. Permanecer ah entre usos normales. Como mnimo, los registros modificados se graban en el disco cuando el ltimo usuario lo cierra, mientras est en modalidad de grabacin diferida.

Eliminacin de archivos de la memoria cach de disco


El administrador puede eliminar un archivo de la memoria cach de disco con el siguiente mandato:
DECATALOG.FILE.CACHE nombre_archivo

El mandato contiene el siguiente componente: Componentes Descripcin FILE nombre_archivo Nombra el archivo que se va a eliminar de la memoria cach de disco. El archivo se desecha y se elimina de la memoria cach cuando el ltimo usuario actual cierra el archivo.

Inicio y detencin del daemon de memoria cach


El administrador puede iniciar y detener el daemon de memoria cach asncrono en segundo plano (grabador). Nota: Debe haber iniciado una sesin en la cuenta dshome. Consulte Inicio de sesin en la cuenta dshome en la pgina 351 para obtener ms informacin sobre cmo iniciar una sesin en la cuenta dshome.

350

Gua del desarrollador de Server Job

El mandato es:
DAEMON.FILE.CACHE [[START x ] | STOP]

El mandato contiene los siguientes componentes: Componentes Descripcin START Inicia el daemon de memoria cach asncrono en segundo plano. x Identifica el periodo de pausa entre exploraciones. x se expresa en unidades de 10 milisegundos.

STOP Detiene el daemon de memoria cach asncrono en segundo plano.

Inicio de sesin en la cuenta dshome


Para iniciar una sesin en la cuenta de inicio de InfoSphere DataStage:

Acerca de esta tarea


El mandato CLEAR.FILE.CACHE y el mandato DAEMON.FILE.CACHE requieren que inicie una sesin como administrador en la cuenta de inicio de IBM InfoSphere DataStage (dshome). En UNIX: Procedimiento 1. Inicie una sesin como dsadm. 2. Determine la va de acceso de dshome:
cat /.dshome

3. Cambie de directorio a la va de acceso especificada. Por ejemplo, si la va de acceso es /u1/uv, el mandato es:
cd /u1/uv

4. Inicie una sesin en la cuenta de inicio.


bin/dssh

Resultados Ahora est en la cuenta de inicio de InfoSphere DataStage. En Windows: Acerca de esta tarea Para iniciar una sesin en la cuenta de inicio de InfoSphere DataStage: En el indicador de mandatos, cambie al directorio del motor de servidor y emita el siguiente mandato:
C:\IBM\InformationServer\Server\DSEngine\bin\dssh

donde C:\IBM\InformationServer\Server\DSEngine es la ubicacin del motor de servidor instalado. Ahora est en la cuenta de inicio.

Ajuste de la memoria cach pblica de enlaces y la memoria cach del sistema


El administrador puede utilizar los siguientes elementos ajustables en el archivo uvconfig para ajustar el rendimiento de la memoria cach de disco.

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

351

Elemento ajustable Descripcin DISKCACHE Especifica el estado del subsistema de memoria cach de disco. Este elemento ajustable debe tener un valor positivo cuando utiliza la memoria cach pblica de enlaces o la memoria cach del sistema. Los valores vlidos son los siguientes: v -1, que significa ALLOW. La memoria cach de disco est inactiva. Los archivos abiertos en modalidad de memoria cach de grabacin o de slo lectura se procesan como si se hubieran abierto en modalidad de grabacin/lectura. ste es el valor predeterminado. v 0, que significa REJECT. El subsistema de memoria cach de disco est inactivo. Los archivos abiertos en modalidad de memoria cach de grabacin o de slo lectura producen un error. v n. El subsistema de memoria cach de disco est activo. n representa el tamao de la memoria cach compartida de disco en megabytes. Se permiten valores del 1 al 512. La memoria cach compartida est limitada a 512 mb en todas las plataformas, excepto Compaq Tru64, que tiene un lmite de 176 mb. DCBLOCKSIZE Especifica el tamao de un almacenamiento intermedio de memoria cach de disco compartida en unidades de 1K (1024 bytes). Los valores vlidos son 4, 8, 16 y 32. 16 es el valor predeterminado. DCMODULUS Especifica el nmero de cadenas de almacenamiento intermedio de memoria cach de disco compartida en las que se divide un archivo. Los valores vlidos son 128, 256, 512 y 1024. 256 es el valor predeterminado. Este elemento ajustable es especfico de la memoria cach del sistema. DCMAXPCT Especifica el porcentaje del total de almacenamiento intermedio de memoria cach de disco compartida que puede poseer un archivo. Los valores vlidos son de 1 a 100. 80 es el valor predeterminado. Este elemento ajustable es especfico de la memoria cach del sistema. DCFLUSHPCT Especifica el porcentaje del total de almacenamiento intermedio de memoria cach de disco compartida propiedad de un archivo que puede estar en un estado de grabacin diferida antes de desecharse en el disco. Los valores vlidos son de 1 a 100. 80 es el valor predeterminado. Este elemento ajustable es especfico de la memoria cach del sistema. DCCATALOGPCT Especifica el porcentaje del total de almacenamiento intermedio de memoria cach de disco compartida que pueden poseer los archivos de datos catalogados para la memoria cach de disco. Los valores vlidos son de 1 a 100. 50 es el valor predeterminado. Este elemento ajustable es especfico de la memoria cach del sistema. DCWRITEDAEMON Especifica el estado del daemon de grabacin en segundo plano de la memoria cach de disco compartida. Los valores vlidos son los siguientes: v 0 es el valor predeterminado e indica que el daemon de grabacin en segundo plano est inactivo. n indica que el daemon de grabacin est activo. n es la cantidad de tiempo que se detiene el daemon de grabacin entre dos grabaciones, expresada en unidades de 10 milisegundos. Este elemento ajustable es especfico de la memoria cach del sistema.

352

Gua del desarrollador de Server Job

Utilizacin del smbolo de euro en los sistemas sin soporte multilingstico


Si desea incluir el smbolo del euro en los archivos hash en los sistemas sin soporte multilingstico, deber realizar varios pasos para dar soporte al smbolo. Consulte la seccin Utilizacin del smbolo de euro en los sistemas sin soporte multilingstico en la pgina 44 para obtener informacin.

Consideraciones sobre el rendimiento


Tenga en cuenta lo siguiente para mejorar el rendimiento de los trabajos.

Trabajo individual frente a mltiples trabajos


El almacenamiento en la memoria cach del sistema permite ejecutar simultneamente varios trabajos o etapas para compartir los mismos archivos del motor de servidor, ya sea como archivos de slo lectura o para grabar y actualizar archivos. El almacenamiento en la memoria cach del sistema no est diseado para utilizarse si slo hay una etapa individual creando o leyendo el archivo.

Almacenamiento en la memoria cach de grabacin diferida


Este tipo de almacenamiento en la memoria cach del sistema ofrece el mximo rendimiento, ya que se difieren las grabaciones sncronas ms costosas en el archivo de disco fsico. A efectos de actualizacin bajo demanda, no hay activo ningn daemon de cach de grabacin aparte, y los bloques actualizados slo se graban en el disco cuando se excede la cuota de conjunto de bloques de un archivo o cuando se ha cerrado la ltima referencia abierta al archivo. La actualizacin lenta es la actualizacin bajo demanda aumentada por un daemon de grabador asncrono aparte. El daemon de grabacin no es necesario para la actualizacin diferida. No obstante, cuando est activo, permite minimizar los lmites de cuota de conjunto de bloques y reducir la posibilidad de archivos daados al mantener el archivo en un estado ms coherente. Con el almacenamiento en la memoria cach de grabacin diferida, los bloques diferidos reales de un conjunto de bloques que se graban en un disco estn determinados por un algoritmo de antigedad de utilizado menos recientemente. Aunque esta opcin proporciona el mximo rendimiento general, si el motor del servidor se cuelga, el archivo puede daarse.

Almacenamiento en la memoria cach de grabacin inmediata


Este tipo de almacenamiento en la memoria cach del sistema tiene un rendimiento ms lento que el almacenamiento en la memoria cach de grabacin diferida porque las grabaciones en el archivo de disco fsico se producen al mismo tiempo que se actualiza la memoria cach. Aunque esta opcin reduce el rendimiento, evita que se daen los archivos lo mximo posible si se cuelga el motor del servidor.

Mejoras del rendimiento


Un conjunto de archivos de motor de servidor puede almacenarse en la memoria cach en segmentos de memoria compartida de un tamao determinado por el archivo uvconfig. Si una mayora de los grupos referenciados estn en esta memoria cach dinmica, se mejora el rendimiento. Si se hace una referencia aleatoria a todos los grupos de un archivo y no todos entran en la memoria cach de disco, el rendimiento puede ser peor que si no se aplica ningn almacenamiento en la memoria cach. Asimismo, si el sistema operativo de host tiene menos memoria fsica que el tamao de la memoria cach de disco configurada, el rendimiento se resiente. El archivo uvconfig en el directorio de inicio de IBM InfoSphere DataStage tiene varios elementos ajustables que se utilizan en la memoria cach de disco (consulte Ajuste de la memoria cach pblica de
Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

353

enlaces y la memoria cach del sistema en la pgina 351. Cualquier plataforma puede mantener un subconjunto de un archivo o una tabla en la memoria cach con la liberacin de los conjuntos de bloques antiguos cuando se necesitan nuevos conjuntos de bloques. Cuando hay varios archivos de gran tamao en la memoria cach, slo un pequeo subconjunto de los bloques de un archivo residirn en la memoria cach, pero el administrador puede modificar los elementos ajustables para permitir el manejo eficaz de un subconjunto pequeo. DCFLUSHPCT proporciona al administrador control sobre el algoritmo de sustitucin de conjuntos de bloques para evitar la inanicin de slo lectura. DCMAXPCT controla el porcentaje mximo de la memoria cach que puede ocupar un archivo. La memoria cach de disco sabe cundo ningn proceso activo requiere acceso al bloque de un archivo y lo libera si es necesario. El rendimiento ptimo se consigue cuando el tamao de la memoria cach de disco compartida, que se establece con el elemento ajustable DISKCACHE, se establece en un valor lo suficientemente alto para contener todo el archivo o una gran proporcin (90-95%) de los grupos referenciados. Si el tamao de DISKCACHE es inadecuadamente pequeo, se produce la hiperpaginacin en la memoria cach de disco. DCMODULUS tiene algn efecto en el tiempo de ejecucin, especialmente para los archivos grandes. Cuando este nmero disminuye, la longitud de las cadenas activas de los almacenamientos intermedios de DCBLOCKSIZE aumenta, lo que supone un mayor tiempo para ejecutar una bsqueda secuencial de una entrada. El establecimiento de DCMODULUS en 1024 es generalmente el ptimo para los archivos grandes (de ms de 75 mb). El inconveniente es que hay menos estructuras de archivo de memoria cach de disco que entran en un almacenamiento intermedio de cach, lo que significa la eliminacin de algunos de la agrupacin de almacenamientos intermedios disponibles. El valor predeterminado de DCBLOCKSIZE es 16. Si es menor, la E/S fsica aumentar y las cadenas de matrices tendrn una mayor longitud, lo que ralentiza el sistema. DCBLOCKSIZE debe ser mayor que 16 slo si la plataforma puede manejar las solicitudes de E/S fsica ampliadas en una E/S en el subsistema de disco. Una forma de reconocerlo es que la plataforma tenga matrices de discos. Los bloques de memoria cach de disco se almacenan en n conjuntos de bloques (donde n se configura como 4k, 8k, 16k o 32k, siendo 16k el valor predeterminado) para reducir el tiempo de bsqueda secuencial y permitir la lectura previa de los bloques en el rea del solicitado. Por este motivo, el tamao de separacin de archivos est restringido a una potencia de 1024 bytes. Cada archivo ser propietario de m cadenas de conjuntos de bloques (donde m se configura como 64, 128, 256, 512 o 1024, siendo 256 el valor predeterminado). A continuacin, se proporcionan ejemplos de valores ajustables de forma que un archivo individual se mantiene en memoria con longitudes aceptables de cadena de conjuntos de bloques con referencia de matriz que deben explorarse secuencialmente para encontrar un bloque.
Tabla 19. Valores de ejemplo Tamao de archivo 32 mb 32 mb 64 mb 64 mb 160 mb 320 mb 1024 mb 1024 mb 1024 mb 1024 mb DCBLOCKSIZE 8k 8k 8k 16k 16k 16k 16k 16k 16k 32k DCMODULUS 128 256 256 256 256 512 256 512 1024 1024 Longitud media de cadena de conjunto de bloques 32 16 32 16 40 40 256 128 64 32

354

Gua del desarrollador de Server Job

Tabla 19. Valores de ejemplo (continuacin) Tamao de archivo 2048 mb DCBLOCKSIZE 32k DCMODULUS 1024 Longitud media de cadena de conjunto de bloques 64

Los archivos de tipo 30 son realmente dos archivos: uno para los grupos primarios y el otro para los bloques de desbordamiento. Por lo tanto, los dos archivos deben considerarse cuando se establece DCMAXPCT. El valor de DCWRITEDAEMON determina la cantidad de tiempo que se detiene el daemon de grabacin entre dos grabaciones. En una plataforma de multiprocesador, el periodo de pausa del daemon de grabacin, que se especifica en DCWRITEDAEMON, puede ser muy bajo; en un procesador individual, el valor debe ser 10 o superior.

Captulo 9. Almacenamiento en la memoria cach de disco de la etapa Hashed File

355

356

Gua del desarrollador de Server Job

Accesibilidad de los productos


Puede obtener informacin sobre el estado de accesibilidad de los productos de IBM. Los mdulos y las interfaces de usuario de los productos de IBM InfoSphere Information Server no son totalmente accesibles. El programa de instalacin instala los siguientes mdulos y componentes del producto: v IBM InfoSphere Business Glossary v IBM InfoSphere Business Glossary Anywhere v IBM InfoSphere DataStage v IBM InfoSphere FastTrack v v v v IBM IBM IBM IBM InfoSphere InfoSphere InfoSphere InfoSphere Information Analyzer Information Services Director Metadata Workbench QualityStage

Para obtener informacin sobre el estado de accesibilidad de los productos de IBM, consulte la informacin de accesibilidad de productos de IBM en http://www.ibm.com/able/product_accessibility/ index.html.

Documentacin accesible
Se proporciona documentacin accesible sobre los productos de InfoSphere Information Server en un Information Center. El Information Center presenta la documentacin en formato XHTML 1.0, que se puede ver en la mayora de navegadores web. El formato XHTML permite establecer propiedades de visualizacin en el navegador. Tambin permite utilizar lectores de pantalla y otras tecnologas de asistencia para acceder a la documentacin.

IBM y la accesibilidad
Consulte el IBM Human Ability and Accessibility Center para obtener ms informacin sobre el compromiso de IBM con respecto a la accesibilidad.

Copyright IBM Corp. 1997, 2011

357

358

Gua del desarrollador de Server Job

Acceso a la documentacin de productos


La documentacin se proporciona en diversas ubicaciones y formatos, tambin en la ayuda que se abre directamente desde la interfaz del producto, en un Information Center para toda la suite y en manuales en archivos PDF. El Information Center se instala como un servicio comn con IBM InfoSphere Information Server. El Information Center contiene una ayuda para la mayora de interfaces del producto, as como documentacin completa para todos los mdulos de productos de la suite. Puede abrir el Information Center desde el producto instalado o bien desde un navegador Web.

Acceso a Information Center


Puede utilizar los mtodos siguientes para abrir el Information Center instalado. v Pulse el enlace Ayuda de la parte superior derecha de la interfaz de cliente. Nota: Desde IBM InfoSphere FastTrack e IBM InfoSphere Information Server Manager, el elemento Ayuda principal abre un sistema de ayuda local. Seleccione Ayuda > Abrir Information Center para abrir el Information Center de toda la suite. v Pulse la tecla F1. La tecla F1 abre generalmente el tema que describe el contexto actual de la interfaz de cliente. Nota: La tecla F1 no funciona en clientes Web. v Utilice un navegador Web para acceder al Information Center instalado, aunque no haya iniciado sesin en el producto. Especifique la siguiente direccin en un navegador Web: http:// host_name:port_number/infocenter/topic/com.ibm.swg.im.iis.productization.iisinfsv.home.doc/ichomepage.html. El nombre_host es el nombre del sistema de capa de servicios en el que est instalado en Information Center, y nmero_puerto es el nmero de puerto para InfoSphere Information Server. El nmero de puerto predeterminado es 9080.Por ejemplo, en un sistema Microsoft Windows Server denominado iisdocs2, la direccin Web tendr este formato: http://iisdocs2:9080/infocenter/topic/ com.ibm.swg.im.iis.productization.iisinfsv.nav.doc/dochome/iisinfsrv_home.html. Tambin hay disponible un subconjunto del Information Center, que se renueva peridicamente, en el sitio web de IBM http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r7/index.jsp.

Obtener la documentacin en PDF y en copia impresa


v Tambin puede disponer de un subconjunto de manuales en archivos PDF mediante el instalador de software de InfoSphere Information Server y el soporte de distribucin. El resto de manuales en archivos PDF est disponible en lnea y pueden accederse desde este documento de soporte: https://www.ibm.com/support/docview.wss?uid=swg27008803&wv=1. v Tambin puede solicitar publicaciones de IBM en formato impreso, ya sea en lnea o a travs de su representante local de IBM. Para solicitar publicaciones en lnea, vaya al Centro de publicaciones de IBM en http://www.ibm.com/e-business/linkweb/publications/servlet/pbi.wss.

Facilitar comentarios sobre la documentacin


Puede enviar sus comentarios sobre la documentacin de la siguiente manera: v Formulario de comentarios en lnea de los lectores: www.ibm.com/software/data/rcf/ v Correo electrnico: comments@us.ibm.com

Copyright IBM Corp. 1997, 2011

359

360

Gua del desarrollador de Server Job

Enlaces a sitios Web no IBM


Este Information Center puede suministrar enlaces o referencias a sitios Web y recursos que no son de IBM. IBM no ofrece representacin, garantas ni contrae otros compromisos en relacin a sitios Web no pertenecientes a IBM o a recursos de terceros (incluido cualquier sitio Web de Lenovo) al que pueda hacerse referencia en cualquier sitio de IBM, ser accesible o estar enlazado a l. Un enlace a un sitio Web no IBM no implica que IBM se haga responsable del contenido o de la utilizacin de tal sitio Web o de su propietario. Adems, IBM no toma parte ni es responsable de ninguna transaccin que el cliente pueda establecer con terceros, aunque haya tenido conocimiento de ellos (o utilice un enlace con ellos) desde un sitio de IBM. En consecuencia, el cliente tiene conocimiento y acepta que IBM no es responsable de la disponibilidad de tales sitios o recursos externos, ni tampoco del contenido, servicios, productos u otros materiales situados en dichos sitios o recursos o disponibles desde ellos. Cuando acceda a un sitio Web no IBM, incluso a uno que pueda contener el logotipo de IBM, tenga en cuenta que es independiente de IBM y que IBM no controla el contenido del mismo. Es responsabilidad del cliente tomar precauciones para protegerse de los virus, gusanos, troyanos y otros programas potencialmente destructivos y proteger la informacin segn estime adecuado.

Copyright IBM Corp. 1997, 2011

361

362

Gua del desarrollador de Server Job

Avisos y marcas registradas


La presente informacin se ha desarrollado para productos y servicios ofrecidos en Estados Unidos.

Avisos
Es posible que IBM no comercialice en otros pases los productos, servicios o caractersticas que se describen en este manual. Consulte al representante local de IBM para obtener informacin sobre los productos y servicios que actualmente pueden adquirirse en su zona. Cualquier referencia a un producto, programa o servicio de IBM no pretende afirmar ni implicar que slo se pueda utilizar dicho producto, programa o servicio de IBM. En su lugar se puede utilizar cualquier producto, programa o servicio funcionalmente equivalente que no vulnere ninguno de los derechos de propiedad intelectual de IBM. Sin embargo, es responsabilidad del usuario evaluar y verificar el funcionamiento de cualquier producto, programa o servicio que no sea de IBM. IBM puede tener patentes o solicitudes de patentes en tramitacin que afecten al tema tratado en este documento. La posesin de este documento no otorga ninguna licencia sobre dichas patentes. Puede enviar consultas sobre licencias, por escrito, a la siguiente direccin: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 EE. UU. Para formular consultas relacionadas con el juego de caracteres de doble byte (DBCS), pngase en contacto con el departamento de la propiedad intelectual de IBM de su pas o enve las consultas, por escrito, a la siguiente direccin: Intellectual Property Licensing Legal and Intellectual Property Law IBM Japan Ltd. 1623-14, Shimotsuruma, Yamato-shi Kanagawa 242-8502 Japn El prrafo siguiente no es aplicable al Reino Unido ni a ningn pas en donde tales disposiciones sean incompatibles con la legislacin local: INTERNATIONAL BUSINESS MACHINES CORPORATION PROPORCIONA ESTA PUBLICACIN TAL CUAL, SIN GARANTA DE NINGUNA CLASE, NI EXPLCITA NI IMPLCITA, INCLUIDAS, PERO SIN LIMITARSE A ELLAS, LAS GARANTAS IMPLCITAS DE NO VULNERACIN DE DERECHOS, COMERCIALIZACIN O IDONEIDAD PARA UN FIN DETERMINADO. Algunos estados no permiten la declaracin de limitacin de responsabilidad de garantas expresas o implcitas en determinadas transacciones. Por consiguiente, es posible que esta declaracin no se aplique en su caso. Esta informacin podra contener imprecisiones tcnicas o errores tipogrficos. La informacin de este documento est sujeta a cambios peridicos; dichos cambios se incorporarn en nuevas ediciones de la publicacin. Es posible que IBM realice mejoras o efecte cambios en el(los) producto(s) y/o el(los) programa(s) descritos en esta publicacin en cualquier momento sin previo aviso. Las referencias hechas en esta publicacin a sitios Web que no son de IBM se proporcionan slo para la comodidad del usuario y no constituyen un aval de esos sitios Web. La informacin contenida en estos sitios Web no forma parte de la informacin del presente producto IBM, y el usuario es responsable de la utilizacin de dichos sitios.

Copyright IBM Corp. 1997, 2011

363

IBM puede utilizar o distribuir cualquier informacin que se le facilite de la manera que considere adecuada, sin contraer por ello ninguna obligacin con el remitente. Los licenciatarios de este programa que deseen obtener informacin sobre l con el fin de habilitar: (i) el intercambio de informacin entre programas creados de forma independiente y otros programas (incluido ste) y (ii) el uso mutuo de la informacin intercambiada, deben ponerse en contacto con: IBM Corporation J46A/G4 555 Bailey Avenue San Jos, CA 95141-1003 EE.UU. Dicha informacin puede estar disponible, sujeta a los trminos y condiciones apropiados, incluido en algunos casos el pago de una tarifa. El programa bajo licencia descrito en este documento y todo el material bajo licen