Monitor - Manual-Tecnico de Programacion
Monitor - Manual-Tecnico de Programacion
Monitor - Manual-Tecnico de Programacion
INDICE
1. PRESENTACION ______________________________________________________ 3
2. OBJETIVOS __________________________________________________________ 4
3. REQUERIMIENTOS PARA EL FUNCIONAMIENTO DEL SISTEMA __________________ 5
3.1 HERRAMIENTAS DE DESARROLLO ____________________________________________ 5
3.2 BASE DE DATOS___________________________________________________________ 5
3.3 SERVIDOR DE APLICACIONES ________________________________________________ 5
3.4 HARDWARE ______________________________________________________________ 5
4. ORGANIZACION DEL SISTEMA ___________________________________________ 6
4.1 ESTRUCTURA DEL CODIGO FUENTE___________________________________________ 6
4.2 PRINCIPALES ARCHIVOS DEL SISTEMA ________________________________________ 7
5. ARQUITECTURA DEL SISTEMA ___________________________________________ 9
6. MODULOS DEL SISTEMA_______________________________________________ 11
6.1. MODULO DE ADMINISTRACION ____________________________________________ 11
6.2. MODULO DE CONSULTA Y REPORTES.______________________________________ 11
6.3. MODULO DE MAPAS ____________________________________________________ 12
6.4. MODULO SIAF _________________________________________________________ 23
7. GENERACION DEL EJECUTABLE ________________________________________ 30
7.1. Generación del ejecutable del Sistema (Modulo 1 y 2) ___________________________ 30
7.2. Generación del ejecutable del Módulo de Mapas (Modulo 3) ______________________ 31
7.3. Generación del Ejecutable del Módulo SIAF (Modulo 4)__________________________ 31
Página 2 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
1. PRESENTACION
El “Manual Técnico de Programación” es un documento que sirve para darle sostenibilidad al sistema; es decir
que el programador pueda realizar rápidamente las modificaciones al código o en su defecto incluir nuevas
opciones en el sistema para lo cual debe comprender la arquitectura utilizada en el desarrollo de este sistema
para un entorno web. La arquitectura está basada en un desarrollo usando el patrón de 3 capas (Presentación,
Negocio y Datos) e implementada en el lenguaje de programación c sharp, de la familia Visual Studio 2010 y
base de datos SQL SERVER.
Se detalla por cada módulo del sistema la estructura, organización de los archivos y los diferentes módulos
que lo conforman, para que el programador siguiendo este documento pueda encontrar rápidamente en la
solución los formularios que está tratando de modificar.
El backend (lado del servidor) está desarrollado principalmente a nivel de la base de datos utilizando
procedimientos almacenados con la ayuda de vistas y funciones. Por tanto, algunos cambios relacionados con
los datos será suficiente realizarlo a nivel de base de datos dejando el código fuente de lado cliente (frontend)
intacto.
Todas las instrucciones de tipo CRUD (Create, Retrieve, Update, Delete) se realizan en la base de datos. NO
existe ninguna instrucción definida en el código fuente, excepto el módulo de mapas.
Página 3 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
2. OBJETIVOS
a) Describir a detalle la arquitectura del sistema
b) Contar con un documento para entender el código fuente y poder darle sostenibilidad.
Página 4 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
3.4 HARDWARE
a) Servidor, computadora de escritorio o laptop (cualquiera de ellos con 8 GB de memoria RAM y 100
GB de espacio en disco).
b) Acceso a la red local.
Antes de levantar el programa fuente para desplegar el sistema, es necesario que tanto la base de datos como
el IIS esten funcionando.
Página 5 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
a) Para conocer el sistema lo primero que debe hacerse es levantar la solución para lo cual debe Iniciar
Página 6 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
N° Carpeta Descripción
1 Entidades Definición de las clases y sus atributos indicando el tipo
Capa de datos, es decir, establece los procedimientos almacenados y
2 PryClsDato
sus parámetros que se ejecutan en el servidor de la base de datos
3 PryClsNegocio Capa lógica o de negocios, aquí se invoca a la capa de datos
Aquí estan las clases donde se definen las funciones generales del
sistema que son invocados desde las otras capas. Ejm. La clase
4 PryClsVariables
ClsConexion, contiene la cadena de conexión a la base de datos que es
invocada desde la capa de datos
5 Util Librerías del sistema que son invocados como utilitarios
Este no es una carpeta, sino es el nombre del proyecto. En este caso el
sistema tiene un solo proyecto que es webmonitor. Dentro de este
6 Webmonitor proyecto se encuentran los dos grandes módulos del sistema:
a) Portal (módulo de acceso público)
b) Mantenimiento (módulo de acceso restringido)
Contiene los formularios de la capa de presentación que se muestran al
7 Portal
público. Todas las opciones aquí solo son de consulta o reportes
Contiene los formularios de la capa de presentación que se muestran a
8 Mantenimiento
usuarios registrados
Carpetas complementarias del Proyecto
9 Content Carpeta para cargar archivos como son los formatos del POA
Librerías en jquery y bootstrap para las hojas de estilos (color, tamaño
10 css
de letra, forma del botón, etc.) a los formularios
11 Fotos Carpeta para las fotografías de las IEI
Almacena las imágenes que se usan en la pantalla principal y
12 Images
formularios
Librerías propias del java script y también las creadas para el sistema.
Aquí se usa algunas funciones del lado cliente para hacer cálculos,
13 Js
cambiar las letras acentuadas, gráficos estadísticos y la invocación
mediante json a la base de datos
Carpeta donde se genera los kml para mostrar en el mapa por colores
14 kml
el desempeño de los docentes
Carpeta donde se guardan los archivos pdf que se generan en el
15 Pdf
sistema para luego ser mostrados como reportes. Ejm. Ficha PIP
El código fuente tiene tres archivos claves que deben ser identificados.
Página 7 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Los dos primeros están ubicados en la carpeta principal y el ultimo está en la carpeta PryClsVariables
El archivo Web.config de preferencia no modificarlo excepto que sea necesario agregar alguna
variable global para luego usarlo en el sistema
El Default.aspx, contiene la página principal del sistema, el menú externo, la ventana del Login y el
banner. Este es el primer formulario que se debe ejecutar.
Otros dos archivos que se deben tener identificados son los siguientes:
Estos archivos contienen todos los objetos que se repiten constantemente dentro de los formularios;
es decir en cada formulario se invocan a este archivo y en automático el formulario ya puede mostrar
los encabezados, los iconos, logos, figuras, estilos, tamaños de las letras, tipo de letras, etc. Los
formularios internos invocan al mastermonitor.master y los formularios externos al
masterportal.master.
Página 8 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Para conocer como esta arquitectura responde al flujo de las operaciones que ejecuta el sistema, vamos a
mostrar mediante un caso de uso Mostrar Usuarios del Sistema en una Tabla. Con este caso, se muestra
como estas capas están conectadas o interrelacionadas desde que el usuario invoca la opción en el sistema
Página 9 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
En el archivo MasterMonitor.Master se encuentran las opciones del menú interno. En este caso la opción es:
Tablas Usuarios y llama al formulario de la capa de presentación ADM_TAB_ListarUsuario.aspx. Ver el
flujo que sigue las transacciones a detalle en el siguiente cuadro.
APLICACIÓN DE LA ARQUITECTURA
N° Capa Formulario / Clase Define objeto Descripción
En este control se busca
Define un control de tipo gridview con el nombre:
mostrar los datos de los
ADM_TAB_ListarUsuario.aspx GV_Usuario
1 Presentación usuarios del sistema
ADM_TAB_ListarUsuario.cs
Define una clase de la capa de negocio: Invoca a:
ClsNegUsuario.Consulta() funUSP_SEL_ListarUsuarios
Invoca a:
Define una clase con los atributos de un usuario,
ClsEstructura.USUARIO()
esta clase esta en el archivo: ClsEstructura.cs
2 Negocio
clsNegUsuario.cs Invoca a:
Define una clase de la capa de datos:
fuUSP_SEL_ListarUsuarios
ClsDatUsuario.Consulta()
ClsConexion.CONF_CADENA_CONEXION Conecta a la BD
SP:
Establece el SP y sus parámetros a ejecutar USP_SEL_ListarUsuarios
3 Datos clsDatUsuario.cs
Ejecuta el SP *
return dt;
4 Negocio clsNegUsuario.cs Retorna los datos a la capa de presentación
dt_data=obj_data.funUSP_SEL_ListarUsuarios();
ADM_TAB_ListarUsuario.aspx Muestra la data en la grilla
5 Presentación GV_Usuario.DataSource=dt_data;
ADM_TAB_ListarUsuario.cs GV_Usuario
GV_Usuario.DataBind();
Este es el flujo que se debe seguir para todos los otros casos de uso.
Página 10 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
En este capítulo se detalla los módulos que conforman el sistema y para cada módulo las opciones que lo
conforman. Estas opciones están representadas en el menú y sub menús de forma que cuando el programador
necesite modificar o actualizar el código fuente deberá encontrar aquí los pasos que lo lleven a los archivos
para poder realizar los cambios siguiendo el flujo descrito en el punto anterior.
Este módulo; como se ha descrito anteriormente es de uso interno y es donde se realiza el registro y
actualización de los datos por parte de los usuarios que tienen acceso. Los formularios de este módulo se
encuentran en la carpeta MANTENIMIENTO como se muestra en esta figura. Por tanto, si se tiene que
adicionar o modificar algún objeto en los formularios de uso interno tiene que buscarlo en esta carpeta.
Página 11 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
El sistema tiene una opción en el menú que invoca a un formulario donde se muestran los Proyectos de
Inversión Pública – PIPs de acuerdo a su estado en que se encuentran: i) Pre inversión, ii) Inversión y iii)
Situación Físico Legal. Luego por cada estado muestra los centros educativos en un mapa de “Google Maps”
como se aprecia en la siguiente figura.
Página 12 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
N° Carpeta Descripción
1 fonts Definición de las clases y sus atributos indicando el tipo
Capa de datos, es decir, establece los procedimientos almacenados y
2 images
sus parámetros que se ejecutan en el servidor de la base de datos
3 jquery Capa lógica o de negocios, aquí se invoca a la capa de datos
Página 13 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Aquí están las clases donde se definen las funciones generales del
sistema que son invocados desde las otras capas. Ejm. La clase
4 jqwidgets
ClsConexion, contiene la cadena de conexión a la base de datos que es
invocada desde la capa de datos
5 scripts Librerías del sistema que son invocados como utilitarios
N° Archivo Descripción
1 CentroeducativoService.cs Servicio que entrega la lista de los centros educativos
2 CentroeducativoService.cs Servicio que entrega la lista de los centros poblados
3 DepartamentoService.cs Servicio que entrega la lista de los departamentos
4 DistritosService.cs Servicio que entrega la lista de los distritos
5 ProvinciasService.cs Servicio que entrega la lista de las provincias
Servicio que presenta un resumen de los datos de los centros
6 ResumenService.cs
educativos a nivel de PIPs.
7 ResumenPIP.cs Variables del PIP
8 ServicesUtil.cs Cadena de conexión a la base de datos
9 Map.html Página principal del módulo de mapas
10 Export.aspx Formulario para exportar los datos al Excel
11 Web.config Archivo de configuración del modulo
a) JQuery. Contiene librerías javascript para elaboración e interacción con elementos HTML.
b) Scripts. Contiene archivos propios de la aplicación que se utilizan durante la interacción del usuario
con la aplicación.
Página 14 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
El usuario selecciona ubigeo hasta distrito y tiene que hacer clic en una de las opciones de Centros
Educativos Según: Ahí empieza el user a interactuar con el mapa. Las opciones están en un
radiobuttons que se llama ETAPA. Este clic llama a la función: loadResumen(etapa, ubigeo) que está
en srcripts.js
c) Llama al servicio ResumenService.cs (loadResumen (etapa, ubigeo). Lee la data y trae el total de
CE por cada estado PIP o Estado del saneamiento mostrando el pin, Estado, N° CE. En paralelo
llama a la función: locateCentrosPoblados(etapa, codigo, color, ubigeo) el cual pinta en el mapa
los CE con pines de colores de acuerdo al resultado
Página 15 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
locateCentrosPoblados()
Página 16 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
f) Cuando se hace clic sobre el pin en el mapa (pin de colores), muestra esta ventana con los datos
detallados del CE. Ejecuta la función: loadCentroEducativo(etapa, estado, modular) y en la parte
final coloca el enlace para ver las fotos. Debe leer la tabla: TAB_FOTO con código MODULAR.
Página 17 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Página 18 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
g) Directorio jqwidgets. Contiene librerías javascript de componentes HTML como ventanas, alertas.
h) Directorio Raíz: Los siguientes archivos se ejecutan como servicios web REST, el formato de
transporte de la información es JSON.
j) Los siguientes archivos son de utilidad para conexión a la base de datos y estructura de datos.
Página 19 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
l) La referencia al nombre del servidor donde se alojan los servicios web REST se guarda en el archivo
scripts\scripts.js en la variable servicesUrl. Esta variable debe contener la dirección donde se
publicarán los servicios. En este caso esta publicado en el hosting cuyo domino es pmeiperu.com. Si
lo van a publicar en una PC, deben indicar la ruta donde esta los DLL de la carpeta BIN
A continuación, se muestran los archivos y carpetas que deben ser copiados al servidor de producción
usando la conexión ftp.
Página 20 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Página 21 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Los servicios web deben ser desplegados en un servidor público, la referencia al nombre del servidor
se guarda en el archivo scripts\scripts.js, el nombre está en la variable: servicesUrl. La llamada al
servicio web se realiza usando jquery a través de método GET, los resultados se procesan y se
agregan al contenido html de la aplicación. En este caso al Listbox Departamentos.
Página 22 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Este módulo también es interno y los casos de uso desarrollados son para leer información sobre los
certificados y devengados del SIAF, consolidar de acuerdo al año y grabarlo en la BD del MONITOR. Esta es
la interfase principal de este módulo.
Este módulo esta desarrollado en Visual FoxPro 9.0 con acceso al SIAF (*.dbf) y al MONITOR mediante
procedimientos almacenados para grabar la data en la base de datos sql server como se muestra en el
siguiente esquema.
Página 23 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Los requisitos para levantar el código fuente de este módulo son los siguientes:
Cuando se levanta el proyecto muestra los archivos que componen este módulo.
N° Archivo Descripción
Carpeta: Data
1 Siafcertificado.dbf Tabla donde se almacenan los certificados
2 Siafdevengado.dbf Tabla donde se almacenan los certificados
3 Siafpoa.dbf Tabla de devengados con código POA
4 Siafpoacertificado.dbf Tabla de certificados con código POA
Carpeta: Forms
Formulario para mostrar los datos de los certificados que se
5 Frm_certificado.scx
leen del SIAF.DBC
Página 24 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
El proceso de lectura y grabación de los datos de los devengados desde el SIAF hacia el MONITOR
sigue el siguiente flujo.
Página 25 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
SIAF - DEVENGADOS
Inicio
EXPEDIENTE_FASE EXPEDIENTE_META
Leer Datos
de Fase y
Meta
Proveedor clasificador
Leer Datos
de Secuencia
Se lee: USP_INS_UPD_POA_SIAF_Devengado
Programa,
Componente,
Proyecto = DNPP
SIAF_DEVENGADO
(MONITOR)
FRM_POA USP_SUM_SIAF_DEVENGADO
Leer Datos
SIAFPOA
de las Notas
USP_INS_UPD_POA_SIAF_EJECUCION
FRM_DEVENGADO SIAFDEVENGADO.DBF
POA_EJECUCION_MENSUAL
MONITOR
Fin
El proceso de lectura y grabación de los datos de los certificados desde el SIAF hacia el MONITOR
sigue el siguiente flujo.
Página 26 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
SIAF - CERTIFICADOS
Inicio
SIAF_CERTIFICADO
(MONITOR)
Cursor4
Usp_upd_siaf_certificado FRM_CERTIFICADO
(graba codigo POA)
SIAF_CERTIFICADO
(MONITOR)
RECUPERA EL DNPP
Crea Cursor de
SIAF_CERTIFICADO
CURCERT SIAFCERTIFICADO.DBF
El diagrama de flujo de este módulo se indican las tablas que se deben leer para poder extraer los
devengados y certificados, así como los cursores que se van creando hasta que finalmente se
Página 27 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
transfiere los datos al MONITOR. El siguiente caso de uso describe como se hace esta
transferencia de los datos.
Modulo desarrollado en Visual FoxPro 9.0, que lee los datos del certificado
y devengado de los contratos que ha firmado el programa con los
proveedores de bienes y servicios y los muestra en varias pantallas
(interfase) para que el usuario pueda seleccionar y transferir al MONITOR.
Descripción
En este CUS se destallarán todos los CUS relacionados con la interfase
que se muestra en el grafico indicado en el punto 3.3: Módulo 3: Interfase
SIAF,
Página 28 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Página 29 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Por lo descrito en el punto 6 el sistema está compuesto por 4 módulos. Entonces si estos 4 módulos es
necesario que este operativo, se debe generar el ejecutable y publicarlo para que los usuarios puedan usarlo.
a) Clic en esta opción del menú Generar y luego clic en Publicar webmonitor
c) El sistema genera los archivos del ejecutable y finalmente en la parte inferior sale el mensaje
“Publicación Correcta”.
Página 30 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
d) Puede observar la carpeta donde se muestran los archivos del ejecutable generado. En este ejemplo
está en la carpeta: E:\sistemas\monitor\exe_monitor.
e) Una vez se tenga la carpeta del ejecutable debe proceder a desplegarlo en un servidor o computadora
siguiendo el manual de instalación y configuración del Monitor.
Este módulo está basado en servicios, la generación del ejecutable es semejante al punto anterior. Las
carpetas y archivos del ejecutable luego de su generación son los siguientes:
Para ejecutar este modulo es necesario tener el visual FoxPro instalado. Abrir el código fuente como se
indica en la siguiente figura. Luego generar el ejecutable haciendo clic en el botón Build,
Página 31 de 32
MONITOR: Manual Técnico de Programación Versión 1.0
Seleccionar una carpeta donde se almacena el ejecutable. En este caso la carpeta se llama EXE y
ahí se grabará el archivo siafdevengados.exe
Página 32 de 32