24 de mayo de 2009

Nuevas funciones para los cubos Olap - Lo último que fatalba para tener toda la potencia !

Estimado Cliente

Tal como comentamos en la nota anterior, generamos dos cubos Olap nuevos.

Ahora vamos a comentar las posibilidades del generador de funciones:

Funciones aritméticas:

Aca vemos un ejemplo ( usado en el cubo de agenda ) para obtener el tiempo de una acción en minutos:

(acciones_crm.fecha_fin-acciones_crm.fecha_inicio)*24 as tiem_acc

Concatenar texto:

Este ejemplo usado en el cubo de agenda es para concatenar dos campos de tipo texto, donde logramos sumar el nombre y apellido del contacto en una nueva variable llamada "contacto":

contactos.nombres || ' ' || contactos.apellido as contacto

Nombres variables acorde un dato variable ( Case )

Ejemplo 1:

Este ejemplo utilizado en el cubo de agenda nos permite que en función de un campo númérico que guarda el tipo de acción, transformarlo en un campo del tipo texto que guarda el significado de ese dato ( que es mucho más fácil de usar de esta manera ).

Esto sirve también para campos codificados, que según lo que diga la variable, podemos poner el significado en la codificación.

CASE
WHEN ( tipo_accion = 1 ) THEN 'Cita'
WHEN ( tipo_accion = 2 ) THEN 'Envio Mails'
WHEN ( tipo_accion = 3 ) THEN 'Llamado'
WHEN ( tipo_accion = 4 ) THEN 'Otra Accion'
WHEN ( tipo_accion = 5 ) THEN 'Servicio para cita'
WHEN ( tipo_accion = 6 ) THEN 'Envio de escrito'
WHEN ( tipo_accion = 7 ) THEN 'Evento'
WHEN ( tipo_accion = 8 ) THEN 'A realizar'
WHEN ( tipo_accion = 9 ) THEN 'Venta proyectada'
WHEN ( tipo_accion = 10 ) THEN 'Acción inmediata'
WHEN ( tipo_accion = 11 ) THEN 'Acción preventiva'
WHEN ( tipo_accion = 12 ) THEN 'Correción permanente'
ELSE 'Revisión dirección'
END as tip_acc;

Ejemplo 2:

En este ejemplo, acorde al tipo de comprobante, calsificamos los proyectos:

CASE
WHEN ( fk_cptes_proyect = 'FATAL' or fk_cptes_proyect = 'MENOR' or fk_cptes_proyect = 'IMPORT' or fk_cptes_proyect = 'ORACLE' or fk_cptes_proyect = 'SQLSVR' or fk_cptes_proyect = 'ERR_LP' or fk_cptes_proyect = 'SOPQUI' or fk_cptes_proyect = 'SOP_LP' or fk_cptes_proyect = 'SOPWEB') THEN 'Soporte'
WHEN ( fk_cptes_proyect = 'PROGR' or fk_cptes_proyect = 'SUGER' or fk_cptes_proyect = 'MEJ_LP') THEN 'Programación'
WHEN ( fk_cptes_proyect = 'DOCUM' ) THEN 'Documentación'
WHEN ( fk_cptes_proyect = 'SCRIPT' ) THEN 'Scripts'
WHEN ( fk_cptes_proyect = 'BASE' ) THEN 'Base'
WHEN ( fk_cptes_proyect = 'TEST' ) THEN 'Testing'
WHEN ( fk_cptes_proyect = 'implem' ) THEN 'Implementación'
WHEN ( fk_cptes_proyect = 'OPORTU' ) THEN 'Oportunidades'
WHEN ( fk_cptes_proyect = 'migqui' or fk_cptes_proyect = 'KROPMI' ) THEN 'Migraciones'
WHEN ( fk_cptes_proyect = 'INDIC' or fk_cptes_proyect = 'CUBOS') THEN 'Inteligencia'
ELSE 'Otros'
END as tipo;

Funciones condicionales:

COMPARAR_str

En este ejemplo del cubo de venta, la función nos devuelve 1 o -1 en función de si un comprobante es de débito o crédito, lo que nos permite sumar correctamente en las estadísitcas.

ITEMS_VENTA.NETO * COMPARAR_str( CPTES_VENTAS.DEUDOR_ACREEDOR ,'D' ) * ITEMS_VENTA.CANTIDAD AS P_total

IIF

iif(expresión, True_Value, False_Value)

En expresión se ingresa lo que se quiere evaluar, y en:

  • True_value : El resultado a obtener si la expresión devuelve un valor verdadero.
  • False_Value: El resultado a obtener si la expresión devuelve un valor falso.

Un ejemplo podría ser:

iif(ventas.neto > 10000, "Venta importante", "Venta no importante" )

Funciones de manejo de texto:

SUBSTRING

Poder estraer una parte de un texto para utilizarlo en un cubo es muy importante. Esto nos permite extraer por ejemplo una parte de un campo que se codificó a los fines de servir para el análisis como variable de corte.

SUBSTRING(Campo1 from 3 FOR 5)

Esta función extrae de una variable llamada campo1 el texto que hay desde el caracter 3 al 5.

Upper:

UPPER(Campo1)

Devuelve el contenido de un campo del tipo caracter en mayúsculas.

Lower:

LOWER(Campo1)

Devuelve el contenido de un campo del tipo caracter en minúsculas.

Converción del tipo de datos:

CAST(Campo1 AS VARCHAR(10))

Convierte un campo ( por ejemplo numérico ) a otro tipo, en el ejemplo a caracter de tamaño 10 letras.

Atte.,,

Sistemas Quilate

http://quilate.blogspot.com/

Nota:

En el caso de disponer motor de base de datos firebird , debe disponer instalado la versión 2.0 o superior.