Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Para Direccionarse a una tabla de la BASE de DATOS del SIAF se debe de realizar la siguiente
Instrucción:
SET DEFAULT TO C:\SIAF_PRESUPUESTO\DATA , luego Enter
Con la Instrucción USE se abre una tabla y con BROWSE se crea una ventana de
visualización de los datos de esa tabla en forma horizontal.
Ahora lo que haremos es abrir y visualizar una tabla llamada EXPEDIENTE.DBF ( No
es necesario poner la extensión DBF ,que es la extesión que se le da a las tablas,
como se ve en la pantalla) , que forma parte de una BASE DE DATOS llamado
SIAF.DBC ( DBC es la extensión que se le da a las Bases de Datos) que se encuentra
dentro de la carpeta DATA.
-1-
BUSQUEDA DE REGISTROS
Cuando se quiere buscar registros en una tabla, se ejecuta la siguiente instrucción .
BROWSE FOR ANO_EJE=’2012’ , luego Enter
Este Filtro es por año , nótese que se utiliza los apostrofes.
En este caso la búsqueda la hacemos por expediente. Las 2 formas tienen un mismo fin, buscar
el expediente numero 2. En una se utilizan los apostrofes en otra no. De ahí sacamos que
-2-
VAL (): Devuelve el valor numérico de una expresión de tipo carácter compuesta por
dígitos.
-3-
Aquí se está buscando en la tabla expediente varios registros del 2012. Nótese que INLIST
agrupa varios registros en solo criterio de búsqueda (expediente).
-4-
Ver que la tabla que se escoge para esta demostración es EXPEDIENTE_NOTA.DBF. Se
marcan en negrita los registros pertenecientes al expediente numero 1 del año 2012, que son los
que se quieren eliminar.
Luego , damos CTRL + W (esta combinación de teclas es para cerrar y grabar las
modificaciones hechas a la tabla) y para terminar se da PACK (este comando sirve para
eliminar físicamente de la tabla , los registros que estén marcados en negrita o deleteados, de
ahí la importancia que tiene el proceso, ELIMINACION FISICA DE REGISTROS, en el
SIAF pues te limpia la DATA de registros inservibles o desechados)
-5-
En la pantalla se muestra la secuencia seguida.
-6-
Luego usaremos ZAP y emergerá un mensaje que preguntará si procede o no a limpiar la tabla
-7-
Luego de poner SI. Procedemos a ver el contenido de la tabla con BROWSE y vemos que no
hay nada, producto del ZAPEADO de la tabla.
REEMPLAZANDO DATOS
Para reemplazar los datos de uno o más registros en una tabla se utiliza REPLACE ALL.
Antes, vemos con BROWSE todo el contenido de la tabla
-8-
TIPO_RECURSO_EJEC_x_MES.DBF , (que es la que usaremos en este ejemplo).
Se ve que esta con el año 2007. Ahora lo que haremos es cambiar el campo Ano_eje, de 2007 a
2008 , usando el REPLACE ALL.
-9-
Verá que los datos del año ya cambiaron de 2007 a 2008
Ó tambien
Reemplazar todos los datos del campo tipo_recurso con el valor M para todos los que tienen el
valor L en el campo tipo_recurso actualmente.
- 10 -
Ud. Verá que los datos del campo tipo_recurso ya cambiaron de L a M.
INSERTAR REGISTROS
Para insertar registros usaremos la misma tabla TIPO_RECURSO_EJEC_x_MES.DBF y se
usara las teclas CTRL + Y , para agregar un nuevo registro.
- 11 -
Siguiendo la secuencia del caso anterior acerca del REEMPLAZO DE DATOS .
Al momento de dar el CTRL + Y (esta combinación de teclas es para insertar un registro
en la tabla ), automáticamente se activará la ultima línea de la tabla que se muestra.
Es ahí donde se ingresará los datos del nuevo registro.
Luego nos ubicamos con los cursores en el campo fecha_doc, cuyo formato es de fecha.
Si lo comparamos con los campos ano_eje, num_doc o moneda veremos que los tipos de datos
que contienen no son iguales.
- 12 -
Para ver el tipo de dato que contienen los campos de las tablas y así poder definir las bien
instrucciones, usaremos el MODIFY STRUCTURE.
Se verá que hay un campo llamado TYPE, donde se podrá ver el tipo de datos.
Si no supiéramos el Tipo de datos habría problemas para visualizar los registros, escribiendo
instrucciones que no corresponden a su tipo de datos.
Por ejemplo si quiere filtrar un campo con formato de fecha o numérico , con los apostrofes
que utilizamos normalmente en un campo con formato de variable (campo ano_eje o
expediente, en la tabla EXPEDIENTE_SECUENCIA) , entonces ocurrirá un error. Como se
muestra en la pantalla.
- 13 -
- 14 -
Eso pasa porque se trato de filtrar lo datos con formato de fecha y númerico con los apostrofes
( ‘’ ) de por medio. Lo correcto debió ser :
Para mostrar un campo númerico
- 15 -
HABILITANDO LOS ESTADOS DE ENVIO
MODULO PARA MODIFICACION PRESUPUESTAL
para Unidad y Pliego ( módulo PTO Y PLIEGO)
Transmitido Plomo U T
Rechazado Rojo R R
Aprobado Negrito A A
Transmitido Plomo A T
Rechazado Rojo A R
Aprobado Negrito A A
Transmitido Plomo N T
Rechazado Rojo N R
Aprobado Negrito N A
- 16 -
4) TRANSMISION DE NOTAS DE MODIFICACION PRESUPUESTARIA
COMO PTO
TABLAS RELACIONADAS.- NOTA_MODIFICATORIA_SEC.DBF
ESTADO DE NOTA MODULO COLOR ESTADO ESTADO MODULO ESTADO ESTADO ESTADO2 ESTADO
ENVIO ENVIO ENVIO2
TABLAS
ESTADO NOTA_MODIFICATORIA_DOC.DBF NOTA_MODIFICATORIA_SEC.DBF
Aprobación del
MEF, envió de PLIEGO -------- -------- -------- PTO N T N P
Nota desde PTO
Se Aprueba
como PLIEGO PLIEGO Azul V P PTO N T V P
nota enviada de
PTO
- 17 -
TABLA DE ESTADOS – EVALUACION PRESUPUESTAL
Indicador de ESTADOS del Cierre y Envío de la EVALUACION PRESUPOUESTAL
1) TRANSMISION DE EXPEDIENTES
TABLAS RELACIONADAS .- Las tablas que se muestran líneas abajo son todas las que
comprenden a la transmisión de expedientes. El uso de todas o una parte de las tablas,
estará supeditada a los CICLOS (Gasto o Ingreso), FASES (Determinado y Recaudado ó
Compromiso, Devengado y Girado) y SECUENCIAS (Anulaciones, Rebajas, Devoluciones,
etc) de los REGISTROS SIAF
EXPEDIENTE_NOTA.DBF
EXPEDIENTE_DOCUMENTO.DBF
EXPEDIENTE_META.DBF
EXPEDIENTE_CLASIF.DBF
EXPEDIENTE_INGRESO.DBF
EXPEDIENTE_SECUENCIA.DBF
EXPEDIENTE_FASE.DBF
EXPEDIENTE.DBF
Nuevo Azul P
Transmitido Plomo T
Rechazado Rojo R
Aprobado Negro A
Nuevo Azul P
- 18 -
Habilitado para envío Verde N
Transmitido Plomo T
Rechazado Rojo R
Aprobado Negro A
Nuevo Azul P
- 19 -
Transmitido Plomo T
Rechazado Rojo R
Aprobado Negro A
1 ) Una vez editado el programa se graba con el mismo nombre de la plantilla o con
otro nombre para poder identificarlo. En FILE SAVE AS
- 20 -
2) En este caso lo llamaremos NUEVO_PROGRAMITA ( la extensión por ser un
programa será PRG ) Luego vamos a FILE NEW
- 21 -
4) Una vez guardado sale otra ventanita. Situarnos en CODE y hacer clic en la cruzecita
para que nos muestre PROGRAM ( seleccionandolo se activa el botón ADD )
- 22 -
5) Dando clikc en ADD (agregar) uno tendra que ubicar el prg
NUEVO_PROGRAMITA.PRG que previamente hemos creado. Una vez adicionado
nos sale el botón activo BUILD ( generar)
6) Dando click a BUILD (generar) nos muestra una ventanita como esta. Activar el
check y las casillas que estan activas en el print. Luego damos clic en OK y nos muestra
- 23 -
una ventanita para poner el nombre y la ubicación del ejecutable (EXE o lobito ) que
generaremos.
- 24 -
REPARACION DE TABLAS EN FOX- Orientada al SIAF
Para entender los problemas de TABLA o DATA, les paso a detallar el significado de
las extensiones en fox.
Extensión:
DBF (tabla) ej: EXPEDIENTE.DBF (tabla expediente)
CDX (índice de la tabla) ej: ASIENTO.CDX (índice de tabla asiento)
DBC (Base de datos- contenedor) ej: SIAF.DBC (base de datos siaf)
DCT (índice de base de datos) ej: SIAF.DCT (índice base de datos siaf)
Muchas veces, errores inesperados como daño de disco duro, ocasionan la perdida total
de la información de la municipalidad. Es por eso que una copia de seguridad de la
carpeta DATA del SIAF resulta indispensable. Se recomienda que esta copia de
seguridad sea guardada en otra maquina que no sea la que usa el SIAF o SERVIDOR,
ya que un daños de disco podría hacer que tanto la DATA del SIAF como su BACKUP
sean irrecuperables.
A continuación les muestro mi proceder ante los errores en tablas o DATA dañada.
Se dará cuenta que siempre opto por GENERAR INDICE para saber exactamente que
tablas es la que presenta el error, sea cual fuese este. Si ese proceso no puede detectar el
error, como segunda opción utilizo el programita llamado
CORRIGE_TABLAS_DAÑADAS_V02.EXE.
Necesariamente debemos saber que tabla esta dañada para operar sobre ella.
Al igual que en la EDICION 3 de TRANSMISIONES, agrupo los errores en 3 tipos
bien definidos al ejecutar el SIAF.
TIPOS DE ERROR
- 25 -
Ir a usuarios:PROCESOS clave A
- 26 -
A mi me interesa la primera PANTALLA DE ERROR que sale, no la segunda ni la
tercera, puesto que estas aparecen a raíz de la primera. Con esto puedo identificar que
tabla presenta el error. En este ejemplo el error es el ASIENTO.DBF, como podemos
ver en el MENSAJE DE ERROR , de la parte central de la pantalla.
Si intentamos entrar a la tabla por el FOX veremos que el mensaje es el mismo La tabla
esta dañada. Se debe de reparar antes devolver a utilizarla
- 27 -
Ante este problema ya existe un programita llamado corrige_tablas_dañadas_v02.exe
- 28 -
Luego el programa procederá a solucionar el problema presentado en la tabla dañada.
- 29 -
Cuando sale este mensaje de error, normalmente la opción GENERAR INDICE no
muestra la tabla dañada, como muestra el mensaje del centro de pantalla.
- 30 -
Si tratamos de abrir esa tabla por fox veremos que sale el mismo error (en ingles). EL
índice no corresponde a la tabla. Elimine el archivo del índice y vuelva a crear el
índice.
- 31 -
Una vez remplazado el archivo EXPEDIENTE.CDX , el problema quedará resuelto.
Para confirmar esto entramos al módulo PROCESOS y damos GENERAR INDICE.
- 32 -
Y este al correr el programa CORRIGE_LA_TABLA_ESTA_DAÑADAS_V02.EXE
- 33 -
Seguidamente migramos la información de esa tabla a un archivo de texto con el COPY
TO
Después de chancar el DBF y CDX de la misma tabla pero de una DATA buena
cualquiera, tenemos que limpiar totalmente estas, con el comando ZAP
- 34 -
Seguidamente procedemos a AGREGAR nuevamente los datos que migramos a un
archvo de texto con el APPEND FROM, este se detendrá justamente al agregar el
registro que se esta duplicando.
A partir de ahí tenesmo que analizar con el archivo de texto y la tabla abierta abieta la
solución a este error.
- 35 -
- 36 -