jueves, octubre 06, 2005

Metadatos y Linaje de datos en SQL

Paquetes de Meta Data Services
En este repositorio se guardan Paquetes DTS que guardan los datos de cuando fueron ejecutados.

Linaje de datos
El linaje de datos le permite determinar el origen de los datos y cómo se calcularon. Al llenar los datos en la tabla se puede agregar opcionalmente un identificador exclusivo a cada fila en la tabla destino. Puede utilizar este identificador para determinar cómo y cuándo se llenaron los datos y la versión específica del paquete que se ejecutó.

Para crear un linaje en la actualización de datos
Cuando creas un DTS y quieres realizar un seguimiento a la actualización de los datos, deberás realizar lo siguiente:

Pasos para crear un DTS con seguimientos de datos (linaje)

  1. Crear un paquete DTS.
  2. Guardarlo como Meta Data Services.
  3. En Propiedades ir a la ficha de Avanzadas y habilitar Linaje haciendo clic en "Mostrar variables de linaje" y "Escribir linaje en el depósito".

Utilizar el Linaje de datos

  1. Cuando hayas ejecutado el DTS podrás recurrir a la tabla que contiene los campos de linaje corto y linaje largo.
  2. Obtienes el número de linaje Corto (o puede ser largo) de una fila de datos.
  3. Ir a "Servicios de Transformación" - "Metadatos" y a la opción "Linaje".
  4. Colocar el número del linaje corto de la fila de datos que elijiste monitorear.
  5. Y verás el la descripción del paquete DTS que generó la inserción de estos datos.

viernes, setiembre 09, 2005

Test para la conexión a una bd para ReportNet

En el panel principal del ReporNet (etiqueta "Welcome"), en la sección de Tools ir al link Directory . Luego ir a la pestaña Data Sources y elegir la base de datos que se desea evaluar.



Luego en la pantalla se mostrará en la columna Actions un ícono con la cual se podrá acceder al testeo (Test the connection...). Seguidamente se muestra la cadena de conexión (Connection string) y el botón de testeo Test. En esta sección existe la opción de probar la conexión con un ID y Password o con el identificador de Signon.

En caso de éxito el ReportNet mostrará un mensaje de conformidad en el estado (Status), caso contrario mostrará como falló (Faulied)

jueves, setiembre 08, 2005

Mensaje de error: ReportNet

"DPR-ERR-2058 The dispatcher cannot service the request at this time. The dispatcher is still initializing. Contact your administrator if this problem persists."

Este mensaje de error, me trajo algunos problemillas, pero buceando en la red encontré una ayuda que solucionó el problema.
Se trata de la autentificación del SQL. En este caso tienes que chequear tu ID y Password con el cual se autentifica el SQl y compararlo con la configuración del ReportNet Cognos Configuration ([programas]\cognos\crn\bin --> crconfigw.exe)

También existen otras posibles causas al error que genera este mensaje, para lo cual recomiendo visiten este link.

miércoles, agosto 24, 2005

Estructura básica para un SVG

La estructura básica para un svg es la siguiente

< xmlns="http://www.w3.org/2000/svg" height="400" width="500" viewbox="0 0 150 150">
< /svg>

donde
*xmlns: es un estandar del XML que identifica un namespace XML.
*viewBox: especifica como el conjunto de gráficos debe estirarse para caber en un elemento contenedor.
*width: indica el ancho del svg.
*height: indica el alto del svg.

Algunos elementos útiles

+El elemento g
ejemplo:
< g >
< id="Grupo1" transform="skewY(10) scale(2)" opacity="0.3">
< fill="red" height="10" width="10" y="50" x="5">
< fill="green" height="10" width="10" y="50" x="15">
< /g>

*Aquí definimos un grupo de identificador Grupo1 en donde se definen 2 rectángulos y se ven afectados por los atributos opacity y transform.

+El elemento defs
ejemplo:

< defs >
< lineargradient id="Gradient01">
< color="#39F" offset="20%">
< color="#F3F" offset="90%">
< /lineargradient>
< /defs>
...
< rect fill="url(#Gradient01)" height="10" width="10" y="100" x="30">

*Donde dentro de defs se define un gradiente que luego puede ser usado en otro elemento. En este caso se utiliza para un rectángulo.

+Elemento Symbol y Use
Ejemplo:

< defs >
< symbol id="MySymbol" viewbox="0 0 20 20">
< height="8" width="8" y="1" x="1">
< height="8" width="8" y="1" x="11">
< /symbol>
< /defs>
...
< use height="15" width="15" y="500" x="500" href="#Simbolo1">

*Con el elemento Symbol se pueden definir algunos gráficos básicos y reutilizarlos en otra ubicación haciendo referencia de ellos a través del elemento use.

Ejemplo utilizando estos elementos:
=========================

< svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 180 180" version="1.1" width="500" height="400">

< defs >
< symbol id="Simbolo1" viewBox="0 0 20 20">
< desc >MySymbol - four rectangles in a grid< /desc>
< rect x="1" y="1" width="8" height="8" / >
< rect x="11" y="1" width="8" height="8" / >
< rect x="1" y="11" width="8" height="8" / >
< rect x="11" y="11" width="8" height="8" / >
< / symbol>
< linearGradient id="Gradient01">
< stop offset="20%" stop-color="#39F" / >
< stop offset="90%" stop-color="#F3F" / >
< / linearGradient >
< /defs >

< g id="Grupo1" opacity="0.3" transform="skewY(10) scale(2)" >
< rect x="5" y="50" width="10" height="10" fill="red" />
< rect x="15" y="50" width="10" height="10" fill="green" />
< / g>


< rect x="30" y="100" width="10" height="10" fill="url(#Gradient01)" / >
< rect x="40" y="100" width="10" height="10" fill="green" / >

< rect x="10" y="10" width="90" height="20" fill="none" stroke="blue" stroke-width="0.3" / >


< use x="45" y="15" width="15" height="15" xlink:href="#Simbolo1" / >
< use x="45" y="35" width="15" height="15" transform="translate(45,0) rotate(45)" xlink:href="#Simbolo1" / >

< / svg >

*Copia y pega este código en un Notepad y guárdalo con la extensión de svg. Si no puedes ver el gráfico necesitas instalar el visualizador de Adobe

jueves, junio 30, 2005

Configurar el usuario ASP.NET para PowerPlay de Cognos

Cuando se tenga que trabajar con la herramienta de PowerPlay de Cognos a través de una página web (ASP), será necesario habilitar en el sistema operativo al usuario ASP.Net para el manejo de la herramienta.

Para tal efecto se deben seguir los siguientes pasos:

  1. Abrir "Panel de Control"
  2. Ir a "Herramientas Administrativas"
  3. Abrir "Servicios de componentes"
  4. En Servicios de componentes ir a "Mi PC" --> "Configuración DCOM"
  5. Buscar el componente "Cognos PowerPlay Application"
  6. Clic derecho e ir a propiedades pestaña "Seguridad"
  7. En Permisos de inicio y activación eliga "Modificar..."
  8. Añada el usuario ASP.NET y otorgue los privilegios necesarios.
  9. Para el caso de Windows 2000 digite en ejecutar "dcomcnfg" y continue con los pasos 5 hasta el 8.
Luego de esto el usuario ASP.Net estará habilitado para trabajar con el PowerPlay desde la web.

martes, junio 28, 2005

Creación de un reporte mediante Script VB

El siguiente código genera un reporte que tiene todas las provincias como filas, y todas las categorías de la dimensión Ventas como columnas (obj.Columns.Item(1))

*********************************************
1 Dim objSet obj = CreateObject("CognosPowerPlay.Report")
2 obj.Open("D:\001Proyectos\ReportCN_mv.ppr")
3 obj.ExplorerMode = false
4 obj.Rows.Remove
5 dim listCat
6 set listCat = obj.CategoryList()
7
8 listCat.Add 3, "Ubigeo", "Departamento", "Provincia"
9 obj.Rows.Add listCat
10
11 If obj.Columns.Item(1).CanDrillDown Then
12 obj.Columns.Item(1).DrillDown
13 End If
14
15 obj.Save
16 obj.Close
17 Set obj = Nothing
*********************************************

Para este ejemplo se plantea que se tiene un reporte con solo un registro habilitado, que en realidad es una medida (Measure) que corresponde a las ventas (Venta).

Descripción:
============
1.- Se crea el objeto de tipo Reporte.
2.- Se abre el reporte existente
3.- ExplorerMode, si es Verdadero se restringe algunas funciones del reporte, si es falso se habilitan todas las funciones y propiedades en el reporte.
4.- Borramos todas las filas del reporte.
5.- Definimos un objeto de una lista de categorías.
6.- Pasamos al objeto la lista de categorías del objeto reporte.
8.- Agregamos a la lista de categorías todas las categorias que pertenecen al nivel de "Provincia" de la dimensión Ubigeo. objetoCategoriaLista.Add recibe de parámetros el número del nivel y los nombres de las categorías hasta donde se quiere llegar.
9.- Adicionamos la lista de categorías al reporte.
11.- Verificamos si se puede realizar un drill down en la dimensión, o nivel, que existe en el reporte.
12.- Realizamos el DrilDown en ese nivel. DrillDown despliega todas las categorías que existen en el nivel especificado.
15.- Guardamos el reporte. Save guarda el reporte actual, tal y como está definida al momento de abrir el reporte.
16.- Se cierra el objeto reporte.

lunes, junio 27, 2005

Modificar un Reporte existente mediante VB Script

Se tiene un reporte y se desea agregar una dimensión al reporte:
Tenemos el siguiente scripts (*.vbs):

'Abrimos un reporte vacio y lo sobreescribimos
Dim obj
Set obj = CreateObject("CognosPowerPlay.Report")
'Abrimos el reporte
obj.Open("D:\001Proyectos\MyNewReport.ppr")
'Declaramos modo de uso
obj.ExplorerMode = false
'Declaramos una lista de categorias
dim listCat
set listCat = obj.CategoryList()
'Adicionamos la dimensión a la lista
listCat.Add 1, "Tiempo"
'Adicionamos la lista al reporte
obj.Columns.Add listCat
'Guardamos el reporte
obj.Save
obj.Close
Set obj = Nothing

En el ejemplo tenemos:
CreateObject("Nombre") .- Declaramos que el objeto a crearse es del tipo Reporte ("CognosPowerPlay.Report")
Open(ruta) .- Esta función es propia de un objeto de tipo reporte y abre el reporte que se especifica en la ruta.
ExplorerMode .- Define como se hará uso el reporte. Si es Verdadero, el reporte estará limitado en algunas funciones, si es Falso, el reporte tiene todos los métodos y propiedades habilitados.
CategoryList .- Permite crear un objeto de tipo "Lista de categorias" en la cual se pueden agregar distintas categorias de las dimensiones de un cubo.
listCat.Add 1, "Tiempo".- Agregamos en la lista la dimensión "Tiempo". El número 1 especifíca el nivel donde en que se encuentra el nombre especificado. En este caso tendremos q se adiciona al reporte los años 2003 y 2004 que son las categorias (hijos) en que se abre "Tiempo" (que está en el nivel 1).
Columns.Add listCat .- Con esta función agregamos la lista de categorias, con los cambios respectivos, como columnas al reporte.
obj.Save .- Grabamos el reporte. En este caso sobreescribimos el reporte existente, para cambiar el nombre o ruta existe la función SaveAs.

viernes, junio 10, 2005

Filtrar la data a través de Scripts

Si lo que se tiene es un objto de tipo reporte el filtro se realiza de la siguiente manera:

' se realiza el filtro
dim dimension
dimension = reporte.DimensionLine.Item("Fecha")
dimension.Change("2004")
dimension.Change("Junio")
dimension.Change("24/10/2005")

'Luego se procede con la carga de datos
...
For i As Integer = 0 To iFilas
For j As Integer = 0 To iColumnas
Me.aDatos(i, j) = _
reporte.CellValue(reporte.rows.item(iPosFila + i), _
reporte.columns.item(iPosColum + j))
Next
Next
...
'
dimension.ChangeToTop()
...
'
En el ejemplo se tiene que crear el objeto de tipo reporte luego de ello se realiza el filtro antes de obtener los datos del reporte y luego finalmente obtener devolver a la dimensión a su primer nivel.

jueves, junio 09, 2005

Uso de cubos a través de scripts

La herramienta de Cognos tiene una herramienta llamada CognosScript Editor que, básicamente, te permite escribir código en Visual Basic Script para hacer uso de los cubos que se leen con la herramienta Cognos PowerPlay.

Lo primero que hay que hacer es crear un objeto que sea del tipo de un reporte, en este caso del tipo "CognosPowerPlay.Report". Luego una vez creado este objeto existen métodos y funciones con los cuales puedes realizar búsquedas, filtros, drill-down, drill-up, etc.

Ejemplo

Dim obj
Set obj = CreateObject("CognosPowerPlay.Report")
obj.Open("D:\Proyectos\PruebasScripts\Reportes\prueba1.ppr")
'MsgBox("realizado con éxito")

Dim dimension
Set dimension = obj.DimensionLine.Item("DProductos")
dimension.change("Enlatados")

obj.DimensionLine.Item("DTiempo").change("2005")

MsgBox("Valor: " & obj.cellvalue(obj.rows.item(3), obj.columns.item(1)))

obj.close()

En este ejemplo el resultado es mostrar un valor (del reporte) que es la intersección de la tercera fila y primera columna, además el valor ah sido filtrado por dos dimensiones. La primera forma crea un objeto llamado dimensión al cual lo cambia por la categoría de "Enlatados". La segunda forma lo hace directo del objeto reporte y cambia la dimensión de tiempo (DTiempo) a la categoría 2005.
El reporte puede tener la estructura de mostrar los datos por otras la dimensión sector (DUbigeo) como columnas y Clientes (DClientes) como filas y una medida (measure) de Ventas en dólares, entonces el valor arrojado será las ventas realizadas al cliente de la fila 3 para el sector de la columna 1, pero filtrado por por productos enlatados y realizadas en el año 2005.

viernes, mayo 27, 2005

Cadena de conexión en Web.config

Para la conexión a bd en el desarrollo de una aplicación ASP se debe agregar la conexión en el Web.config de la siguiente manera:

< ? xml version="1.0" encoding="utf-8" ? >
<>
...
<>
< key="SQLConnection" value="Persist Security InfoTrue;User ID=USUARIO; Password=MICONTRASEÑA;Initial Catalog=NOMBRETABLA;Data Source=Local">
< / appsettings >
...
< / configuration >

Y se puede acceder a esta cedena de conexión con estos comandos
ConfigurationSettings.AppSettings(“NombreConexion”)

Herramienta: ASP, BD SQL.

Cadena de conexión en Web.config

Para la conexión a bd en el desarrollo de una aplicación ASP se debe agregar la conexión en el Web.config de la siguiente manera:

< ? xml version="1.0" encoding="utf-8" ? >
< configuration >

...
< appsettings >
< add key="NombreConexion" value="Persist Security InfoTrue;User ID=USUARIO; Password=MICONTRASEÑA;Initial Catalog=NOMBRETABLA;Data Source=Local" / >
< / appsettings >

...
< / configuration >

Y se puede acceder a esta cedena de conexión con estos comandos
ConfigurationSettings.AppSettings(“NombreConexion”)

Herramienta: ASP, BD SQL.

Cadena de conexión en Web.config

Para la conexión a bd en el desarrollo de una aplicación ASP se debe agregar la conexión en el Web.config de la siguiente manera:



...

NombreConexion" value="Persist Security InfoTrue;User ID=USUARIO; Password=MICONTRASEÑA;Initial Catalog=NOMBRETABLA;Data Source=Local" />

...


Y se puede acceder a esta cedena de conexión con estos comandos
ConfigurationSettings.AppSettings(“NombreConexion”)

Herramienta: ASP, BD SQL.

jueves, mayo 26, 2005

Instalación del MSDE

Instalar el Data Engine
=================================
Para instalar el MSDE, obtener le paquete de instalación:
*ruta
http://www.microsoft.com/downloads/details.aspx?FamilyId=413744D1-A0BC-479F-BAFA-E4B278EB9147&displaylang=es#filelist

A la hora de instalar tener en cuenta que el archivo Setup.ini viene por defecto con:
[Options]
Lo que se debe hacer es configurar este archivo para que la instalación se ejecute sin problemas.
[Options]
SAPWD="mi_password"
SECURITYMODE=SQL
DISABLENETWORKPROTOCOLS=1

Donde SAPWD indicará el password que existe o se asigna.
SECURITYMODE indica la forma de seguridad.
DISABLENETWORKPROTOCOLS que no se puede acceder remotamente a esta instancia.

La otra manera es escribir los parámetros por línea de comando.
Herramienta: MSDE

Cognos - Inspección de medidas

Cuando se quiera inspeccionar si alguno de los valores o medidas del modelo no está coincidiendo con los valores de las dimensiones utilizar la opción en :"Dimension Map" -> ClicDerecho "Show Scope".

En esta opción se puede visualizar las medidas que estan coincidiendo con el modelo, y las fuentes de datos tambien. Aparecerán de otros colores aquellos que no hagan match con los datos del modelo.

Acutalizar con Service Pack el MSDE

ACTUALIZAR EL SERVICE PACK 3
=============================
Para ejecutar el isntalador sql2kdesksp3, que contiene las actualizaciones de service pack se recomienda ejecutar por líneas de comando con la siguiete instrucción

setup UPGRADE=1 DISABLENETWORKPROTOCOLS=1

Esto será suficiente para que produzca al actualización respectiva. ;)
Herrramienta: MSDE

En SQL - No hay suficiente espacio en disco

NO HAY SUFICIENTE ESPACIO EN DISCO
==================================
Esto puede ser provocado por que la tabla temporal del sql (tempBD) que está ocupando mucho espacio en disco, y no se puede realizar mas operaciones en el sistema.

Ante mensajes como Log is full o cuando la tabla temporal está llena, lo recomendable es reiniciar la aplicación. Esto se realiza con el manejador de servicios de Sql, apagando el sql y volviendo a iniciarlo.

Herramienta: SQL Server

Error TR2000 - no se puede generar el cubo

Limpiar datos CLEAN HOUSE
======================
Cuanso suceda un error de tipo "Error TR2000" se debe hacer lo siguiente:
Guardar el modelo en formato mdlAbrir el modelo en formato Gauardar el modelo en formato pyicerrar el modelo en formato mdl y abrir el modelo en formato pyiGenerar el cubo nuevamente.

Herramienta: PowerPlay Transformer de Cognos