ADMINISTRACIÓN CENTRAL
DE MANTENIMIENTO DE APLICACIONES
ADMINISTRACIÓN DE
MANTENIMIENTO DE APLICACIONES
INSTRUCTIVO
INSTRUCTIVO TÉCNICO
DEL PROCESO DE PRE-VALIDACIÓN DE
PAGOS (Versión 2.1) CLAVE
DOCUMENTO:
AÑO
FECHA DE ELABORACIÓN
No. PAGINA
M E S
2003
ADMINISTRACIÓN GENERAL
DE TECNOLOGÍA DE LA INFORMACIÓN
TIPO DE DOCUMENTO:
ÁREA EMISORA:
INSTRUCTIVO TÉCNICO
DEL PROCESO DE
PRE-VALIDACIÓN DE
PAGOS (Versión 3.0)
Versión |
|
Fecha de autorización |
|
|
|
Elaboró |
Revisó |
Autorizó |
|
|
|
|
|
|
INDICE
INSTRUCTIVO 0TÉCNICO DEL PROCESO DE PRE-VALIDACIÓN dDE PAGOS (Versión 2.1)0d 2
El presente documento es una guía que explica el funcionamiento del programa validador de pagos de Impuestos Federales a través de su Nuevo Esquema, con el fin de apoyar a la Banca para su implantación en la fase de prevalidación.
El validador considera los críterios especifícados en los documentos siguientes:
Especifícaciones técnicas para el pago de Impuestos Federales a través de la Banca Mexicana Versión 1.4.1.
Especifícaciones técnicas para el pago de Impuestos Federales a través de la Banca Mexicana Versión 2.0.
Especifícaciones técnicas para el pago de Impuestos Federales a través de la Banca Mexicana Versión 2.1.
Especifícaciones técnicas para el pago de Impuestos Federales a través de la Banca Mexicana Versión 3.0.
Mismos que se publicaron en la ruta http://www.sat.gob.mx/abm/default.htm
DIAGRAMA PRINCIPAL DEL PROCESO
d_respuesta d_errores
m_lotes
RUTA
/var/opt/pagos/LOTES/VALIDAR/banco/
El proceso de validación de archivos de pagos, consta de los pasos siguientes:
A partir del registro del lote en las estructuras m_lotes y d_respuesta, se inicia el proceso de validación buscando el lote en la ruta /var/opt/pagos/LOTES/VALIDAR/banco/
Lote:
C40021031230 O40021031230.001
m_lotes
c_numlote 1222
d_nombrelote 40021031230
d_tipoenvio C
n_numrenvio 0
n_numcomplemento 0
n_numenviolote 1
n_clavebanco 40021
f_fecha_pre 2003/12/30
f_fecharegistro 2003-06-04 12:08
n_numpaquetes 1
n_numoperas 0
n_numregistros 0
n_numtransacciones 0
n_numtransainconsi 0
i_importe $0.00
n_ultimoproceso 1
n_resulproceso 0
f_fechaproceso 2003-06-04 12:08
d_paquetes
c_nombrepaquete O40021031230.001
c_numlote 1222
n_numoperas 0
n_numregistros 0
i_importe $ 0.00
f_fecharegistro 2003-06-04 12:08
El proceso toma los lotes marcados en m_lotes con los campos n_ultimoproceso = 1 y n_resulproceso = 0 para comenzar su validación.
Se cargan a memoria los catálogos involucrados en la validación (reglas, conceptos, versiones, bancos, entidades federativas, períodos). Estos se encuentran distribuidos en listas ligadas y árboles binarios.
En este documento, se incluyen los diagramas representativos de las estructuras utilizadas en memoria para la validación del lote. Dichas estructuras son manipuladas en forma dinámica de acuerdo al flujo de las validaciones a realizar a las operaciones.
Durante la validación de una operación, existen las etapas siguientes:
Lectura total de los datos de la operación.
Identificación de la versión con la cual se validará la operación.
Validación de la estructura de los datos de la operación (naturaleza de los datos, longitudes)
Aplicación de las reglas de negocio sobre la operación.
El registro de los errores detectados en la operación.
Liberación de memoria utilizada durante la validación.
Una vez validado el lote, el resultado se registra en las estructuras d_errores y m_lotes. Esta información se toma para la generación del acuse indicando el resultado de la validación (Aceptado ó Rechazado, en este último caso, se agrega un detalle de los errores detectados durante el proceso)
Nota: Esta programación no considera la validación del sello, ya que estas librerias no están consideradas para su distribución.
DIAGRAMA REPRESENTATIVO DE LAS ESTRUCTURAS QUE COMPONEN AL VALIDADOR
Equipo en el que se corre actualmente: HP-UX 9000
Sistema Operativo: B.11.00
Manejador de Base de Datos: Informix-ESQL Versión 9.51.HC1
Lenguaje de Programación: ESQL/C (Informix SQL- C)
Código fuente:
Módulos:
cbpgvalida0.c
cbpgvalida1.ec
cbpgutil.ec
cbpglistae.ec
cbsqlerrorc.ec
cberrorc.c
mkpagos
Encabezados:
cbpgtablas.h
cbpgvalida0.h
cbpgvalida1.h
cbpgutil.h
Catálogos:
m_catmedios30.asc
m_pgcat_matrices30.asc
m_pgvermatriz30.asc
m_pgcat_conver30.asc
m_pgcat_per30.asc
m_pgcat_entfed30.asc
m_pgcat_reglas30.asc
m_pgcat_secretaria30.asc
COMPILACIÓN Y EJECUCIÓN DE LOS PROGRaMAS
Se tienen tres tipos de archivos los .c .ec y los .h . Se agrega un makefile para su compilación por cual a continuación se menciona la forma de compilar y ejecutar los programas.
Compilación de los programas:
Teclear la siguiente línea de comando seguida de un enter.
$make –f mkpagos cbpgvalida
Ejecución de los programas:
Teclear el nombre del ejecutable seguido de un enter.
$cbpgvalida
Catálogo m_pgcat_conver : Catálogo de conceptos
Nombre del Campo |
Tipo de Dato |
Descripción |
C_informa |
Smallint |
Identificador de versión (ver m_pgvermatriz). |
C_clave_int |
Integer |
Clave informática. |
N_clave_ext |
Integer |
Clave externa (contable). |
N_renglón |
Integer |
Número de renglón en la matriz. |
D_decripcion |
Char(100) |
Descripción del Impuesto |
N_columna |
Integer |
Número de columna en la matriz. |
D_col_matriz |
Char(45) |
Descripción de la columna en matriz. |
N_tipo_dato |
Smallint |
Criterio de validación para el dato. |
Catálogo m_pgvermatriz : Catálogo que guarda la relación banco vs versión de acuerdo a la fecha de presentación en la que el banco inicio su operación
Nombre del Campo |
Tipo de Dato |
Descripción |
c_cveamb |
Integer |
Clave del banco |
c_idforma |
Smallint |
Número de matriz |
n_materia |
Smallint |
Tipo de matriz: 1 -> Provisional 5 -> Anual |
n_medio_recepcion |
Smallint |
Medio de recepción 1 ->Ventanilla 3 ->Internet |
f_iniforma |
Date |
Fecha de inicio de la versión |
f_finforma |
Date |
Fecha de fin de la versión |
Catálogo m_pgcat_per: Descripción de períodos de pago
Nombre del Campo |
Tipo de Dato |
Descripción |
c_n_periodo |
smallint |
Periodo de pago presentado. |
d_des_periodo |
char(25) |
Descripción del periodo. |
d_presentacion |
char(15) |
Frecuencia de presentación. |
Catálogo m_caterrores: Catálogo de errores
Nombre del Campo |
Tipo de Dato |
Descripción |
c_claveerror |
Smallint |
Clave del error |
d_descripción |
Varchar(255) |
Descripción del error |
Catálogo m_catmedios: Catálogo de medios de recepción de pagos (bancos).
Nombre del Campo |
Tipo de Dato |
Descripción |
c_cveamb |
integer |
Clave de la Institución de crédito (Banco) |
d_nombremedio |
char(35) |
Nombre del medio o banco |
d_certificado |
char(1) |
1 = medio certificado, 0 = no certificado |
d_diripmedio |
varchar(20) |
Dirección ip del medio para enviar acuses |
d_cuentaacceso |
varchar(15) |
Usuario para entrar al equipo |
d_directorio |
|
Directorio del banco en el equipo |
d_rutadeposito |
varchar(80) |
Directorio donde depositar los acuses |
d_so |
char(1) |
Clave de sistema operativo w = windows, u = unix |
Catalogo m_pgcat_reglas: Se establecen todas las reglas de validación para cada una de las matrices.
Nombre del Campo |
Tipo de Dato |
Descripción |
C_idforma |
smallint |
Identificador de la matriz |
N_renglon |
integer |
Número de renglon |
N_columna |
integer |
Número de columna |
Regla |
char(200) |
Descripción de la matriz |
Catalogo m_pgcat_entfed : Catálogo de entidades federativas.
Nombre del Campo |
Tipo de Dato |
Descripción |
C_entfed |
smallint |
Clave de la entidad |
D_descripcion |
char(40) |
Descripcion de la entidad |
Catálogo m_pgcat_matrices: Catálogo de matrices.
Nombre del Campo |
Tipo de Dato |
Descripción |
C_idforma |
smallint |
Identificador de la matriz |
N_materia |
smallint |
Materia de la matriz: 1 Provisional 5 Ejercicio 4 Creditos Fiscales 12 Entidades Federativas |
D_version |
char(12) |
Número de versión |
D_descripcion |
char(40) |
Descripción de la matriz |
Tabla m_lotes : Se guardan las referencias de lotes recibidos.
Nombre del Campo |
Tipo de Dato |
Descripción |
C_numlote |
serial |
Número consecutivo que se asigna a cada lote de recepción |
D_nombrelote |
char(11) |
Nombre del lote |
D_tipoenvio |
char(3) |
Tipo de envio: ’C’, ’R’, ’CE’ o ’RE |
N_numrenvio |
smallint |
Número de re envío del mismo lote |
n_numcomplemento |
smallint |
Es el número de complementos enviados de un lote |
n_numenviolote |
Smallint |
Número de envío lotes repetidos |
n_clavebanco |
Integer |
Clave del banco que envía el lote |
f_fecha_pre |
Date |
Fecha de presentación de los pagos |
f_fecharegistro |
DATETIME YEAR TO MINUTE |
Fecha de llegada del lote al SAT |
n_numpaquetes |
Smallint |
Número de paquetes del lote |
n_numoperas |
Integer |
Número de operaciones del lote |
n_numregistros |
Integer |
Número de registros del lote |
n_numtransacciones |
Integer |
Número de transacciones |
n_numtransainconsi |
Integer |
Número de transacciones inconsistentes |
i_importe |
money(14,0) |
Importe total del lote |
n_ultimoproceso |
Smallint |
Último proceso por el que paso el lote |
n_resulproceso |
Smallint |
Resultado del último proceso |
f_fechaproceso |
Datetime year to minute |
Fecha del último proceso. |
Tabla d_respuesta: Se guardan los acuses de respuesta de cada lote, la fecha y hora de envío del acuse al banco.
Nombre del Campo |
Tipo de Dato |
Descripción |
c_numlote |
integer |
Número consecutivo que se asigna a cada lote de recepción |
d_acuseenvio |
char(1) |
’0’ Acuse no enviado, ’1’ acuse enviado |
n_numintentos |
smallint |
Número de intentos de envío al banco |
f_fechaenvio |
DATETIME YEAR TO MINUTE |
fecha de envío del acuse al banco |
Tabla d_errores : Se guardan los errores de las operaciones de cada lote.
Nombre del Campo |
Tipo de Dato |
Descripción |
c_numlote |
integer |
Número consecutivo que se asigna a cada lote de recepción |
n_numpaquete |
smallint |
Número de paquete del error |
n_numregistro |
integer |
Registro en el que esta el error |
n_mediopago |
smallint |
Medio de pago 1 = ventanilla, 3 = internet |
n_numoperacion |
decimal(12,0) |
Número de operación |
i_importe |
money(15,0) |
Importe del pago |
n_claveerror |
smallint |
Clave del error detectado |
Tabla d_paquetes: Control de los paquetes que componen cada lote.
Nombre del Campo |
Tipo de Dato |
Descripción |
c_nombrepaquete |
char(21) |
Nombre del paquete |
c_numlote |
Integer |
Número consecutivo que se asigna a cada lote de recepción |
n_numoperas |
Smallint |
Número de operaciones del paquete |
n_numregistros |
Integer |
Número de registros del paquete |
i_importe |
money(14,0) |
Importe total del paquete |
f_fecharegistro |
Date year to minute |
Fecha de llegada del paquete al SAT |
Catalogo m_pgcat_secretaria : Catálogo de Secretarias
Nombre del Campo |
Tipo de Dato |
Descripción |
C_informatica |
Integer |
Clave de la secretaria |
D_descripcion |
char(200) |
Descripcion de la secretaria |
Introducción a la Econometría Licenciatura en Administración y Dirección
Módulo i Introduccion al Gobierno y Administración Municipal Tema
Superintendencia Nacional de Administración Tributaria Intendencia Aduana de Puno
Tags: administración central, 2003 administración, mantenimiento, administración, aplicaciones, central