Juan Garcés

Personal Blog

Introducción a Informatica PowerCenter

septiembre 29th, 2013

Edición de Expresiones

    Una expresión es una instrucción de cálculo o condicional que puede ser agregada a una transformación. Esta expresión usa el lenguaje de tranformación de Informática que contiene un grán número de funciones diseñadas para el manejo común de datos. Por ejemplo, la función TO_CHAR es usada para convertir de date a string, la función SUBSTR es usada para obtener una porción de una cadena de caracteres.

    Una expresión está compuesta por puertos (input, input/output, variable), funciones, operadores, variables, literales, valores de retorno y constantes. Las expresiones pueden ser utilizadas en las siguientes transformaciones:

  • Expression – En puertos de Salida
  • Aggregator – En puertos de Salida
  • Rank – En puertos de Salida
  • Filter – En la Transformación
  • Update Strategy – En la Transformación

 

    Para editar una expresión se debe presionar el botón que aparece en la columna Expression como se muestra la imagen 3.8.


    Al abrirse el Editor de Expresiones se encontrará con una ventana como la mostrada en la imagen 3.9, la cual cuenta con un panel (a la izquierda) donde se encuentran todas las funciones, puertos y variables que se pueden utilizar en la expresión. En la zona de edición (a la derecha) podremos modificar la expresión escribiendo directamente las instrucciones que deseemos y luego realizar la validación con el botón “Validate” o simplemente presionando “OK”.


 

    Para insertar comentarios dentro de la expresión sólo se debe poner el prefijo “–” ó “//” a la línea que se desea comentar.

    Veamos ahora cada una de las funciones que se pueden utilizar en el editor de expresiones que han sido agrupadas según las necesidades que se puedan presentar.

 

  1. Funciones de Agregación

    Son funciones que permiten realizar cálculos sobre conjuntos de valores realizando la agrupación de los mismos.

Nombre

Sintaxis

Descripción

AVG

AVG( numeric_value [, filter_condition ] )

Retorna el promedio de todos los valores en el grupo.

COUNT

COUNT( value [, filter_condition ] )
ó
COUNT( * [, filter_condition ] )

Retorna el número de registros con valores no nulos en el grupo

FIRST

FIRST( value [, filter_condition ] )

Retorna el primer registro en el grupo.

LAST

LAST( value [, filter_condition ] )

Retorna el último registro en el grupo

MAX

MAX( value [, filter_condition ] )

Retorna el máximo valor o la última fecha encontrada en un grupo.

MEDIAN

MEDIAN( numeric_value [, filter_condition ] )

Retorna la media de todos los valores en el puerto seleccionado.

MIN

MIN( value [, filter_condition ] )

Retorna el mínimo valor o la primera fecha encontrada en un grupo.

PERCENTILE

PERCENTILE( numeric_value, percentile [, filter_condition ] )

Retorna el percentil de un grupo.

STDDEV

STDDEV( numeric_value [, filter_condition ] )

Retorna la desviación estándar de un grupo.

SUM

SUM( numeric_value [, filter_condition ] )

Retorna la suma de todos los registros de un grupo.

VARIANCE

VARIANCE( numeric_value [, filter_condition ] )

Retorna la varianza de todos los registros de un grupo.

 

  1. Funciones de Caracteres

Nombre

Sintaxis

Descripción

ASCII

ASCII ( string )

En modo ASCII retorna el número ASCII del primer carácter del string.

En modo Unicote retorna el número Unicote del primer carácter del string.

Esta función es idéntica en comportamiento a la función CHRCODE.

CHR

CHR( numeric_value )

Retorna el carácter ASCII o Unicote correspondiente al número especificado.

CHRCODE

CHRCODE ( string )

En modo ASCII retorna el número ASCII del primer carácter del string.

En modo Unicote retorna el número Unicote del primer carácter del string.

Esta función es idéntica en comportamiento a la función CHRCODE.

CONCAT

CONCAT( first_string, second_string )

Concatena dos strings.

INITCAP

INITCAP( string )

Convierte la primera letra de cada palabra del string en mayúscula y las demás letras en minúsculas.

INSTR

INSTR( string, search_value [, start [, occurrence ] ] )

Retorna la posición de un carácter dentro de un string contando desde la izquierda a la derecha.

LENGTH

LENGTH( string )

Retorna el número de caracteres de un string.

LOWER

LOWER( string )

Convierte a minúsculas los caracteres de un string.

LPAD

LPAD( first_string, length [, second_string ] )

Agrega caracteres al inicio de un string.

LTRIM

LTRIM( string [, trim_set ] )

Elimina los espacios en blanco al inicio de un string.

REPLACECHR

REPLACECHR( InputString, OldCharSet, NewChar )

Reemplaza un carácter en un string.

REPLACESTR

REPLACESTR ( InputString, OldString1, [OldString2, …OldStringN,] NewString )

Reemplaza una string dentro de otro.

RPAD

RPAD( first_string, length [, second_string ] )

Agrega caracteres al final de un string.

RTRIM

RTRIM( string [, trim_set ] )

Elimina los espacios en blanco al final de un string.

SUBSTR

SUBSTR( string, start [, length ] )

Retorna una porción de un string.

UPPER

UPPER( string )

Convierte en mayúsculas los caracteres de un string.

 

  1. Funciones de Conversión

    Funciones de conversión de tipos de datos. Éstas son útiles para evitar problemas en comparaciones y asignaciones de puertos.

Nombre

Sintaxis

Descripción

TO_CHAR

TO_CHAR( numeric_value )
TO_CHAR( date [, format ] )

Convierte números y fechas en texto.

TO_DATE

TO_DATE( string [, format ] )

Convierte un string en una fecha. Es posible indicar el formato que tiene la fecha por el parámetro format.

TO_DECIMAL

TO_DECIMAL( value [, scale ] )

Convierte cualquier valor (excepto binario) en un decimal.

TO_FLOAT

TO_FLOAT( value )

Convierte cualquier valor (excepto binario) a un flotante de doble precisión.

TO_INTEGER

TO_INTEGER( value )

Convierte cualquier valor (excepto binario) a un número entero, redondeando la porción decimal.

 

  1. Funciones de Limpieza de Datos

    Agrupación de funciones que ayudan en la limpieza de datos.

Nombre

Sintaxis

Descripción

INSTR

INSTR( string, search_value [, start [, occurrence ] ] )

Retorna la posición de un carácter dentro de un string contando desde la izquierda a la derecha.

IS_DATE

IS_DATE( value )

Retorna verdadero si el valor es una fecha válida.

IS_NUMBER

IS_NUMBER( value )

Retorna verdadero si el valor es un número válido.

IS_SPACES

IS_SPACES( value )

Retorna verdadero si el valor está conformado enteramente por espacios.

ISNULL

ISNULL( value )

Retorna verdadero si el valor es nulo.

LTRIM

LTRIM( string [, trim_set ] )

Elimina los espacios en blanco al inicio de un string.

METAPHONE

METAPHONE( string [,length] )

Codifica caracteres del alfabeto de la lengua inglesa (A-Z). Codifica letras mayúsculas y minúsculas en mayúsculas.

REPLACECHR

REPLACECHR( InputString, OldCharSet, NewChar )

Reemplaza un carácter en un string.

REPLACESTR

REPLACESTR ( InputString, OldString1, [OldString2, … OldStringN,] NewString )

Reemplaza una string dentro de otro.

RTRIM

RTRIM( string [, trim_set ] )

Elimina los espacios en blanco al final de un string.

SOUNDEX

SOUNDEX( string )

Codifica un string en una cadena de cuatro caracteres.

SUBSTR

SUBSTR( string, start [, length ] )

Retorna una porción de un string.

TO_CHAR

TO_CHAR( numeric_value )
TO_CHAR( date [, format ] )

Convierte números y fechas en texto.

TO_DATE

TO_DATE( string [, format ] )

Convierte un string en una fecha.

TO_DECIMAL

TO_DECIMAL( value [, scale ] )

Convierte cualquier valor (excepto binario) en un decimal.

TO_FLOAT

TO_FLOAT( value )

Convierte cualquier valor (excepto binario) a un flotante de doble precisión.

TO_INTEGER

TO_INTEGER( value )

Convierte cualquier valor (excepto binario) a un número entero, redondeando la porción decimal.

 

  1. Funciones de Fecha

Nombre

Sintaxis

Descripción

ADD_TO_DATE

ADD_TO_DATE( date, format, amount )

Agrega un número específico de una parte a una fecha/hora.

DATE_COMPARE

DATE_COMPARE( date1, date2 )

Retorna 1, 0, -1 o NULL si date1 es mayor, menor, igual o NULL respectivamente.

DATE_DIFF

DATE_DIFF( date1, date2, format )

Retorna la diferencia entre dos fecha en años, meses, días, horas, minutos o segundos.

GET_DATE_PART

GET_DATE_PART( date, format )

Retorna una parte de una fecha.

LAST_DAY

LAST_DAY( date )

Retorna el último día de un mes.

MAX

MAX( date, filter_condition )

Retorna la mayor fecha de un grupo.

MIN

MIN( date, filter_condition )

Retorna la menor fecha de un grupo.

ROUND

ROUND( date [, format ] )

Redondea una parte de una fecha.

SET_DATE_PART

SET_DATE_PART( date, format, value )

Establece un valor específico para una parte de una fecha.

TRUNC

TRUNC( date [, format ] )

Trunca una fecha a un especificado año, mes, día, hora o minuto.

 

  1. Funciones Numéricas

    Funciones para operaciones matemáticas y de manejo de números.

Nombre

Sintaxis

Descripción

ABS

ABS( numeric_value
)

Retorna el valor absoluto de un número.

CEIL

CEIL( numeric_value
)

Retorna el número entero más pequeño mayor o igual el valor numérico especificado.

CUME

CUME( numeric_value [, filter_condition ] )

Retorna el total de todos los valores.

EXP

EXP( exponent )

Retorna el valor e elevado a un exponente, donde e = 2.71828183.

FLOOR

FLOOR( numeric_value )

Retorna el número entero más grande inferior o igual el valor numérico especificado.

LN

LN( numeric_value )

Retorna el logaritmo natural de un número.

LOG

LOG( base, exponent )

Retorna el logaritmo de un número.

MOD

MOD( numeric_value, divisor )

Retorna el resto de una división entera.

MOVINGAVG

MOVINGAVG( numeric_value, recordset [, filter_condition ] )

Retorna el promedio (registro a registro) de un grupo de registros.

MOVINGSUM

MOVINGSUM( numeric_value, recordset [, filter_condition ] )

Retorna la suma (registro a registro) de un grupo de registros.

POWER

POWER( base, exponent )

Retorna el resultado de un valor elevado a un exponente.

ROUND

ROUND( numeric_value [, precision ] )

Redondea un número a un número específico de decimales.

SIGN

SIGN( numeric_value )

Indica si un valor es positivo, negativo o 0 (cero).

SQRT

SQRT( numeric_value )

Retorna la raíz cuadrada de un valor positivo.

TRUNC

TRUNC( numeric_value [, precision ])

Trunca un valor a un número específico de dígitos.

 

  1. Funciones Científicas

    Funciones para cálculos científicos.

Nombre

Sintaxis

Descripción

COS

COS( numeric_value )

Retorna el coseno de un número expresado en radianes.

COSH

COSH( numeric_value )

Retorna el coseno hiperbólico de un valor expresado en radianes.

SIN

SIN( numeric_value )

Retorna el seno de un valor expresado en radianes.

SINH

SINH( numeric_value )

Retorna el seno hiperbólico de un valor expresado en radianes.

TAN

TAN( numeric_value )

Retorna la tangente de un valor expresada en radianes.

TANH

TANH( numeric_value )

Retorna la tangente hiperbólica de un número expresada en radianes.

 

  1. Funciones Especiales

    Funciones condicionales y de apoyo a la construcción de expresiones.

Nombre

Sintaxis

Descripción

ABORT

ABORT( string )

Detiene la sesión y usa un error especificado.

DECODE

DECODE( value, first_search, first_result [, second_search, second_result ]…[, default ] )

Busca un puerto para un valor específico.

ERROR

ERROR( string )

Causa que Informática salte el registro y utilice el error especificado.

IIF

IIF( condition, value2 [, value2 ] )

Retorna uno o más valores de acuerdo a la condición especificada.

LOOKUP

LOOKUP( result, search1, value1 [, search2, value2]… )

Busca un valor en una columna origen. Se recomienda utilizar la transformación Lookup en su lugar.

 

Comments

18 Comments

RSS
  • jgarces says on: 23/01/2015 at 5:32 pm

     

    Hola Edgar, no he tenido tiempo de generar más material, pero puedes enviar tus consultas e intentaré ayudar en lo que pueda.
    Saludos.

  • Edgar Hernández Hernández says on: 20/01/2015 at 7:04 pm

     

    Buenas tardes Juan, espero que se encuentre bien recientemente me he topado con el uso de las transformaciones http transformation y web services consumer transformation, tendran material acerca de estos temas te lo agradecería.

    saludos

  • jgarces says on: 19/01/2015 at 5:34 pm

     

    Hola Oscar,
    Sí, todos los objetos se almacenan en la base de datos donde se encuentra instalado el servicio.
    Saludos.

  • OscarChaplin says on: 16/01/2015 at 2:49 pm

     

    Hola Juan que tal.

    Primero que nada déjame felicitarte por tan buen material acerca de IPC, a continuación te comento mi duda.

    Los objetos ETL IPC se guardan en la base de datos con la que se crea el servicio de repositorio ?

    De antemano gracias por tu atención

  • jgarces says on: 12/01/2015 at 2:11 am

     

    Puedes descargar la versión Express desde Versión Express

  • acisneros says on: 11/01/2015 at 10:12 am

     

    Hola Juan, pues mira buscando información encontré tu página, la verdad es que estoy muy interesado en aprender ETL con Informática, soy totalmente novato, espero me puedan ayudar y mi pregunta es, ¿Existe una licencia de estudiante? o como podría conseguir una con power center, no se tan cara

  • jgarces says on: 23/07/2014 at 9:54 am

     

    Hola Alejandro. Dejo las respuestas a tus consultas:

    1. El cliente, generalmente, viene incluido en el mismo ZIP o paquete de instalación, ya sea para Windows o Linux, busca la carpeta dentro cuando descomprimas. El cliente sólo se instala en Windows.

    2. El source qualifier es un objeto que convierte los tipos de datos desde el origen a los tipos de datos que utiliza Powercenter. Se utiliza para fuentes de BD como de Archivo Plano. Se inserta automáticamente cuando arrastras un Source al Mapping.

    3. La imagen IV son dos objetos que se utilizan como entrada y salida del mapplet. El primero se utiliza como entrada y el segundo como la salida. Estas transformaciones sólo tienen el nombre de los campos de entrada y salida, las demás transformaciones internas realizan las tareas. La imagen V es un ejemplo de mapplet.

    4. He utilizado desde la versión 7 hasta la 9 y hasta el momento no he tenido problemas de compatibilidad. Sólo he notado que algunas opciones han cambiado de ubicación, como por ejemplo, la creación de usuarios, que se movió desde el Repository Manager a la consola de administración.

    5. Powercenter Designer tiene un Debug que puedes utilizar para realizar seguimiento cuando tengas problemas, pero generalmente ejecuto y reviso los logs finales de los Workflows, ya que son muy detallados.

    Un saludo.

  • Alejandro Torres J (birkut) says on: 22/07/2014 at 7:01 pm

     

    Qué tal, felicidades por compartir este excelente tutorial, te dejo aquí algunas dudas, gracias.

    1. Deseo instalar ipc para hacer pruebas, ya bajé el servidor, ¿debo bajar el cliente? De hecho estoy a punto por instalar ipc en mi lap, incluso ya tengo un key que me envio Informatica.

    2. El Source Qualifier prácticamente siempre se usa cuando el origen de datos es Oracle o SQL Server, dado que son bases relacionales, ¿cierto?

    3. Me perdí un poco en el tema de Mapplet, no del uso, pero sí de la imagen IV a la imagen V, específicamente en la V no ubiqué dónde está el mapplet, o si todo ese es el Mapplet. Quizá cuando empiece a hacer pruebas me daré cuenta.

    4. Qué versión de ipc usaste ya que no sé si hay muchas versiones, y si de pronto tendré conflictos con eso. Me parece estar instalando Informatica PowerCenter Express 9.6.1.

    5. Estaba buscando algo sobre testing de etl para ipc, podrías comentarme a qué se podría referir este tema, o alguna pista por dónde buscar. De hecho me preguntaba si tiene que ver con el tema de validación.

    Saludos.

  • jgarces says on: 19/06/2014 at 12:10 pm

     

    Me alegra que continúes avanzando y que el material publicado sea de utilidad. Agradezco tu ofrecimiento de colaboración, cualquier aporte es bienvenido. Un saludo. Juan.

  • Edgar Hernández Hernández says on: 18/06/2014 at 5:43 pm

     

    Y gracias por poner un foro en con este tema muy util, si en algo puedo colaborar estoy a sus ordenes, tengo algo de experincia sin embargo aun hay cosas que aun me faltan aprender. Muchas gracias. Recientemente hice funcionar el java transformation

  • Edgar Hernández Hernández says on: 18/06/2014 at 5:26 pm

     

    Muchas gracias amigo Juan, el día de hoy he tenido la oportunidad de hacer un ejercion con un normalizer con un requerimiento que tube, aun me faltan cosas por aprender de configuracion pero por lo pronto ya normalicé. un saludo cordial

  • jgarces says on: 01/06/2014 at 6:31 pm

     

    Hola Edgar. Intentaré poner ejemplos en cuanto tenga un tiempo. Como observación, el normalizer es similar al source qualifier, se agregan automáticamente al agregar un tipo de origen de archivo VSAM (Cobol) y su utilidad es la misma, convertir los tipos de datos de la fuente al tipo de datos de Informatica. Un saludo. Juan.

  • Edgar Hernández Hernández says on: 20/05/2014 at 4:51 pm

     

    En este tutorial lo mencionas pero si nos brindas un ejemplo estaria de lo mejor.
    Saludos

  • Edgar Hernández Hernández says on: 20/05/2014 at 4:50 pm

     

    Buenas Tardes, muy buena información, te agradecería si subes algo sobre el normalizer considero un objeto muy util, sin embargo no cuento aun con el conocimiento, si tu tubieras algo sobre eso te lo agradeceria.

  • Abraham Sosa says on: 13/05/2014 at 1:58 pm

     

    Muchas gracias esta muy completa la información.

    Excelente aporte jgarces.

    Saludos

  • jgarces says on: 08/03/2014 at 8:50 pm

     

    Lo siento, sólo en la web.
    Un saludo.

  • dammler says on: 15/02/2014 at 1:11 am

     

    Hola amigo, ¿Tendrás este material excelente en PDF? Saludos.

  • jgarces says on: 19/10/2013 at 11:40 pm

     

    Dejen sus comentarios y aportes, trataré de incluir nuevos artículos relacionados a PowerCenter tan pronto me sea posible.

Juan Garcés

Personal Blog