Últimos artículos
Estas son las últimas entradas en el blog.
De todo un poco para solucionar los problemas diarios de un administrador de IT y DBA
Estas son las últimas entradas en el blog.
De todo un poco para solucionar los problemas diarios de un administrador de IT y DBA
Para poder obtener un tablero de comandos existen diversas herramientas, entre pagas y gratuitas. Hoy analizaremos la herramienta de Microsoft Power BI para generar un pequeño tablero de comando de la información cargada en el ERP Sistemas Bejerman.

Lo primero que haremos será «Obtener datos» de «SQL Server»:

Para ello deberemos completar la cadena de conexión indicando nuestro servidor de SQL Server y la Base a usar:
Si toda esta correcto nos listará todas las tablas existentes. Para este ejemplo solo marcaremos tres:
Una vez que tenemos nuestras tablas e importante armar la relación entre ellas. La forma que vamos a usar es la siguiente:
Pero en el caso de la primer relación la tabla Bco tiene una clave combinada, compuesta por dos campos: Código y Sucursal. Y en PowerBi no se pueden hacer relaciones con más de un campo, por eso haremos un pequeño truco: combinaremos dos columnas en una nueva columna.
Es un proceso fácil. Se marcan las dos columnas de la tabla Bco, y se elige «Combinar» (Merge), teniendo la opción de agregar un separador. Así pasaremos de tener bco_cod y bco_descrip en una nueva columna llamada «Banco_Sucursal»:


Este paso lo haremos también en la tabla cheques3. Es momento de hacer las relaciones. Así es como inicia:
Así debe ser el resultado:

Antes (o durante) del momento del diseño del tablero pueden surgir la necesidad de crear campos calculados. El objetivo es:
Para el ejemplo en cuestión dentro de la tabla cheques3 el camp chq3_edo indica el estado del cheque, pero solo tenemos una letra que significa lo siguiente:
Para cargar esta equivalencia, podemos usar una formula. simplemente creamos una nueva columna, y agregamos en su interior:

Y le cambiamos el nombre a uno más amigable: Estado
Usemos el ingenioYa es momento de usar los elementos visuales para empezar con las representaciones de los indicadores

Espero que les sea útil para comenzar a preparar sus propios reportes. Dejen sus comentarios.
Los switch HP 1910 o HP1920 traen una consola resumida. Te enseñare como habilitar la consola extendida.
El primer paso es que ingreses por TELNET al switch con el usuario que tengas. Seguido a esto debes ingresar el siguiente comando:
_cmdline-mode on
<HP 1920G Switch>_cmdline-mode on All commands can be displayed and executed. Continue? [Y/N]y Please input password:********************** Warning: Now you enter an all-command mode for developer's testing, some commands may affect operation by wrong use, please carefully use it with our engineer's direction.
Los posibles passwords son:
Estos pasos son obligatorios de hacer cada vez que ingreses, y de la misma forma el password no se puede cambiar, ya que están por código en el firmware.
Otro dato interesante es Jinhua y su relación con HP:
Normalmente cuando trabajamos configurando nuestros switch es habitual que realicemos los procesos directamente por consola y no por las GUI WEB que traen instaladas. Sin embargo las ediciones S de HP no traen de forma nativa habilitada dicha opción. En esta oportunidad les contaré un pequeño truco para habilitarlos.
El primer paso es ingresar por la interface web y descargar el backup de la configuración activa. Para ello debemos ingresar en:
Maintenance \ Backup and Update Manager y descargar la configuración activa de inicio (startup configuration)


Luego modificamos la misma con un editor de texto y agregamos justo antes de configure. La siguiente línea:
ip telnet server enable
Seguido a este subimos la nueva configuración y reiniciamos nuestro switch. Ahora podemos ingresar por TELNET.
Ya estamos en condiciones de habilitar el SSH. Para ello debemos colocar en una sesión por TELNET los siguientes comandos:
enable
configure
crypto key generate rsa
crypto key generate dsa
exit
ip ssh server enable
ip ssh protocol 2
write memory confirm
quit
Si quisiéramos deshabilitar el TELNET:
enable
no ip telnet server enable
write memory confirm
quit
Espero que les sirva
Existen diversas formas de obtener indicadores del servicio prestado. Sin embargo la mejor retroactividad es la que puede brindarte tu propio cliente. Para ello muchas veces es necesario implementar una encuesta de calidad que permite sondear diferentes aspectos del servicio brindado.
En esta oportunidad se trabajo bajo la siguiente plataforma:
El proceso para armarla la misma consiste en:
Primero que nada vamos a entender como funciona:
En la primer parte se define las variables a usar y la conexión a la BD MYSQL:
;----------------------- INICIO DE PARAMETROS DE ENCUESTA ; 2099 IVR Encuesta ; Inicio exten => 2099,1,Answer ; Atiendo ;exten => 2099,n,Wait(1) ; Espero 1 Segundo para darle tiempo al SIP exten => 2099,n(begin),Set(TIMEOUT(digit)=3) ; Defino parametros de tiempo exten => 2099,n,Set(TIMEOUT(response)=3) ; Defino Parametros de tiempo ;exten => 2099,n,Set(CHANNEL(hangup_handler_push)=hangup-sql,2099,1); SubRutina de Guardar en Base :: cuando el cliente corta no se puede detectar, se descarta exten => 2099,n,MYSQL(Connect connid 172.15.15.15 usuario clave base_datos) ; Me conecto a la Base de Datos ; Asignacion de Variables exten => 2099,n,Set(MSGN=custom/ivr-n) ; Cargo el Mensaje de Num de Expediente exten => 2099,n,Set(MSG0=custom/ivr-0) ; Cargo el Mensaje de Bienvenida exten => 2099,n,Set(MSG1=custom/ivr-1) ; Cargo la Pregunta 1 exten => 2099,n,Set(MSG2=custom/ivr-2) ; Cargo la Pregunta 2 exten => 2099,n,Set(MSG3=custom/ivr-3) ; Cargo la Pregunta 3 exten => 2099,n,Set(MSG4=custom/ivr-4) ; Cargo la Pregunta 4 exten => 2099,n,Set(MSG5=custom/ivr-5) ; Cargo la Pregunta 5 exten => 2099,n,Set(MSG6=custom/ivr-6) ; Cargo la Pregunta 6 exten => 2099,n,Set(MSGError0=custom/ivr-error0) ; Cargo el error 0 exten => 2099,n,Set(MSGError1=custom/ivr-error1) ; Cargo el error 1 exten => 2099,n,Set(MSGError2=custom/ivr-error2) ; Cargo el error 2 exten => 2099,n,Set(MSGEnd=custom/ivr-end) ; Cargo el Fin de la Encuesta
Luego viene la parte en donde le pregunto al personal interno el ID inicial para almacenar
;-------------- PREGUNTA N de ID ---------------------------------
;Empiezo con la Pregunta del Numero de ID
exten => 2099,n(pregN),Playback(${MSGN}) ; Reproduzco la Pregunta Num de ID
exten => 2099,n,Goto(2099,pregNresp) ; voy a esperar la respuesta
;Esperando Respuesta1
exten => 2099,n(pregNresp),Read(NUMBEREXP,,5,1) ; Leo lo que marca el personal Interno: Num de ID
exten => 2099,n,GotoIf($["${NUMBEREXP}" = ""]?pregN); Si la respuesta es nula entonces Pregunto de Nuevo Num de Expediente
;exten => 2099,n,SayNumber(${NUMBEREXP},f)
exten => 2099,n(pregNconf),Read(NUMBER,,1,1) ; Leo lo que marca el operador: 1 correcto, 0 correguir
exten => 2099,n,GotoIf($[${NUMBER} = 0]?pregN:intro); Si la respuesta es 0 voy a la pregunta 1
Seguido y validado lo anterior le reproduzco la bienvenida al cliente:
; -------------- INTRO -------------------------------------
; Mensaje explicando el funcionamiento de la encuesta
exten => 2099,n(intro),Playback(beep) ; Reproduzco un Beep
exten => 2099,n,Set(PREFIJO="2019") ; Asigno un prefijo personalizado. Ej: El año
;exten => 2099,n,Set(NUMBEREXP=$[${PREFIJO}~~${NUMBEREXP}])
exten => 2099,n,Wait(3) ; Espero 3 Segundos
exten => 2099,n,Playback(${MSG0}) ; Reproduzco la intro
exten => 2099,n,Wait(1)
exten => 2099,n,MYSQL(Query consulta0 ${connid} insert into encuestas(ID,IDCRM,Personal,Fecha1,Fecha2,Activo) values (1,${NUMBEREXP},"Mauro",NOW(),NOW(),1)) ; Inserto la$
Luego debería seguir con las «N» preguntas que pueda tener configurado. Y al final reproducir un mensaje de FIN.
Esto es una idea de cómo se puede implementar.
En los siguientes artículos que iré creando resumiremos el uso de las siguientes funciones analíticas incorporadas a partir de SQL Server 2012
Estas son:
A partir de la versión 2012 de SQL Server se incorporaron entre otras cosas dos funciones nuevas, que permiten acceder a la fila anterior, o posterior de una consulta.
Algo que anteriormente era imposible, y tocaba solucionar con Tablas Pivot, o usando Self Join
Primero entendamos que hace cada una:
LAG: devuelve el valor (de una columna especificada) que estuvo en la fila anterior.
LEAD: devuelve el valor (de una columna especificada) que estuvo en la fila siguiente.
Mas info:
https://docs.microsoft.com/en-us/sql/t-sql/functions/lag-transact-sql
https://docs.microsoft.com/en-us/sql/t-sql/functions/lag-transact-sql
IT CallCenters
Desarrollo de aplicaciones web y mobile
