Resumen
El usuario se conecta por ssh, mediante un cliente de ssh (Putty), al servidor de producción donde están los scripts y programas cobol. Mediante el logueo, por una configuración del servidor, se ejecuta el archivo "LoginOper.sh" lo que muestra al usuario 17 opciones en pantalla que es un script de shell que presenta un menú al usuario para realizar varias tareas relacionadas con la operación de comercios y la administración de impresiones, lo que se resume en 17 opciones.
Opciones desplegadas al usuario
El uso de esta funcionalidad tiene unas de restricciones y limitaciones las cuales detallaremos a continuación.
Expand | |||||
---|---|---|---|---|---|
| |||||
ServiciosRequest:
Response:
Procedimientos AlmacenadosLos procedimientos almacenados configurados deben cumplir obligatoriamente con los siguientes criterios: Criterios Generales
Parámetros de Entrada / Salida:Entrada:Solo son soportados los siguientes tipos de datos para los parámetros de entrada:
Salida:Solo son soportados los siguientes tipos de datos para los parámetros de salida:
|
Plataforma de los Servicios Paramétricos
Diagrama
Los servicios paramétricos son consumidos desde un servicio principal que recibe los parámetros de acceso (ruta o path del Servicio) y los datos de entrada (de enviarse) , busca los datos parametrizados para el servicio, y luego ejecuta el SP configurado, retornando la respuesta.
Expand | ||
---|---|---|
| ||
API Ceibo / API Tarjeta Habientes
Todos los servicios habilitados o ha habilitarse serán invocados a través de un servicio principal o raíz que se encuentra en el API. Este servicio se encarga de las validaciones, verificaciones, configuración, ejecución y retorno de la respuesta de la ejecución del procedimiento almacenado que fue configurado
title | Ver Información |
---|
Link del Servicio
Version 1:
http://host/ws-tarjetahabiente/prmservices/v1/sprunner/prmGroup/prmVersion/prmServicio
Observaciones: Este servicio quedará deprecado por la Version 2
Version 2:
http://host/ws-tarjetahabiente/prmservices/v2/sprunner/prmGroup/prmVersion/prmServicio
Donde:
- prmGroup: Valor del Parámetro "Grupo" configurado para el Servicio.
- prmVersion: Valor del Parámetro "Versión" configurado para el Servicio.
- prmServicio: Valor del Parámetro del "Nombre" configurado para el Servicio.
Invocación del Servicio
Request:
- Input Type: POST
- Output Type: Content-Type:application/json
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Esta version del request espera recibir un array de parámetros de entrada. Estos parametros que son utilizados para realizar la invocación del SP configurado para el servicio. La cantidad de parámetros de entrada así como también los tipos de datos y los nombres de los parámetros, variarán de acuerdo a cada SP configurado. Pudiendo incluso enviarse un array vacío o sin datos. Servicio Ejemplo: http://host/ws-tarjetahabiente/prmservices/v1/sprunner/usuarios/v1/altaUsuario
Donde:
|
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Esta version del request espera Objeto JSON (en lugar de un array de parametros) en donde cada propiedad del JSON representa el nombre del parametro de entrada definido en las configuraciones. Servicio Ejemplo: http://host/ws-tarjetahabiente/prmservices/v2/sprunner/usuarios/v1/altaUsuario
Donde:
|
Response:
La respuesta del servicio depende de las configuraciones de los parámetros de salida del SP configurado. Pudiendo retornar desde ningún parámetro hasta N parametros.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"header": {
"codReturn": "0",
"txtReturn": ""
},
"data": {
"numeroX": "12312312",
"descripcion": "This is a Test",
"fechaSistema": "15/05/2021 14:54:30",
"registro": {
"NRO": "12312312",
"FECHA1": "01/02/2021",
"FECHA2": "01/02/2021 22:01:33",
"TEXTO_RANDOM": "parangaricutirimicuaro"
}
"departamentos": [
{ "ID": "0", "DESCRIPCION": "DISTRITO CAPITAL" },
{ "ID": "1", "DESCRIPCION": "CONCEPCION" },
{ "ID": "2", "DESCRIPCION": "SAN PEDRO" },
{ "ID": "3", "DESCRIPCION": "CORDILLERA" },
{ "ID": "4", "DESCRIPCION": "GUAIRA" },
{ "ID": "5", "DESCRIPCION": "CAAGUAZU" },
{ "ID": "6", "DESCRIPCION": "CAAZAPA" },
{ "ID": "7", "DESCRIPCION": "ITAPUA" },
{ "ID": "8", "DESCRIPCION": "MISIONES" },
{ "ID": "9", "DESCRIPCION": "PARAGUARI" },
{ "ID": "10", "DESCRIPCION": "ALTO PARANA" },
{ "ID": "11", "DESCRIPCION": "CENTRAL" },
{ "ID": "12", "DESCRIPCION": "ÑEEMBUCU" },
{ "ID": "13", "DESCRIPCION": "AMAMBAY" },
{ "ID": "14", "DESCRIPCION": "CANINDEYU" },
{ "ID": "15", "DESCRIPCION": "PRESIDENTE HAYES" },
{ "ID": "16", "DESCRIPCION": "BOQUERON" },
{ "ID": "17", "DESCRIPCION": "ALTO PARAGUAY" }
],
}
} |
Observaciones
- El API transforma cada uno de los datos retornados a su representación de un String. Excepto para los tipos de datos CURSOR o ESTRUCTURA
- Para las fechas aplica automáticamente el formato dd/mm/yyyy o dd/mm/yyyy hh24:mi:ss, dependiendo de si la fecha tiene o no horas.
- Para el tipo de dato CURSOR:
- El response es mapeado como un array de estructuras.
- En donde cada estructura tiene tantas propiedades como campos o columnas que han sido retornados en el cursor del SP.
- En el ejemplo de mas arriba puede verse a este tipo de dato como la propiedad: "departamentos"
- Para el tipo de dato ESTRUCTURA:
- Este tipo de dato es también un CURSOR, pero manejado de manera diferente por el API
- La diferencia consiste en que en lugar de retornar un array de registros, solo retorna el primer elemento del Array como una estructura.
- En el ejemplo de mas arriba puede verse a este tipo de dato como la propiedad: "registro"
Base de Datos
Todas las configuraciones para los Servicios paramétricos se hacen en la base de datos BAPY CEIBO
Paquete PL/SQL
title | Ver Informacion |
---|
CREDITOPY.PKG_API_CEIBO
Todas los métodos necesarios para que los servicios otorgados por el API Paramétrico funcionen se encuentran en este PKG.
Observaciones IMPORTANTES !!:
La idea de este PKG es ser un package aislado, por lo cual dentro de este package SOLO deben existir los métodos relacionados al funcionamiento de la parametrizacion del SPs como servicios- Códigos PARTICULARES, PROPIOS del Proyecto en si y NO de este PKG
- No agregar procedures, funciones, types, referencias, etc.
- No tocar este PCK salvo si sea para hacer ajustes en el API Paramétrico
Tablas de Configuracion
title | Ver Info de Tablas |
---|
DER:
Detalle de Tablas:
Tabla principal de configuraciones de los servicios parametricos.
En esta tabla se configuran los procedures que seran invocados, la base de datos donde esta alojado el SP y el path de accesion en el API
{group}/v1/getDatos
La version del servicio disponibilizado. Ej:
tarjetas/{version}/getDatos
El nombre del servicio. Ej:
tarjetas/v1/{servicio}
La base de datos en las que es ejecutado el Procedure (BAPY / OLPY)
El nombre del esquema en el que se encuentra el procedure.
Obs: El usuario que ejecuta el SP es CREDITOPY, asi que debe tener permisos de ejecucion sobre el esquema.pkg.procedure
El nombre del procedimiento almacenado a ejecutar.
Obs: Configurar aqui el procedure procedure_name o pkg_name.procedure_name, sin el esquema. El API concatenará durante la ejecucion el esquema.sp_name o esquema.pkg_name.sp_name
Tabla hija de la tabla anterior y tiene como funcion registrar el detalle de los parametros de entrada con los que cuenta el procedure configurado
Especifica el tipo de dato permitido. Valores permitidos:
- NUMERO
- TEXTO
- FECHA
Obs: Fecha en formato: dd/mm/yyyy o dd/mm/yyyy hh24:mi:ss
El valor por defecto del parametro. Los datos deben ponerse en lenguaje SQL.
Ejemplos:
- 123456
- 'S'
- TO_CHAR(12323)
- to_date('01/01/2021', 'dd/mm/yyyy')
- sysdate
- f_get_dato...
Tabla que registra el detalle de los parametros de salida con los que cuenta el procedure configurado
Mapeo del tipo de dato que es retornado por el SP. Este dato se utiliza para la creacion del statement de ejecucion del SP contra la base de datos.
Especifica el tipo de dato permitido. Valores permitidos:
- NUMERO
- TEXTO
- FECHA
- CURSOR
- ESTRUCTURA
Obs: El tipo de dato "ESTRUCTURA" es un tipo de dato personalizado que representa el primer registro retornado por un Cursor. El API toma este tipo de dato y lo devuelve como un objeto JSON en lugar de como un Array JSON.
Ejemplo de Configuración de Servicios
Ejemplo rápido de configuración de un SP como servicio.
title | Ver Ejemplo |
---|
Según lo expuesto mas arriba para agregar nuevos servicios se debe:
- Contar con un Procedimiento Almacenado (en BAPY/OLPY, parámetros de entrada, luego salida, etc.)
- Configurar el mismo en las tablas de configuraciones
- Grupo Servicio en el Path
- Versión del Servicio en el Path
- Nombre Servicio en el Path
- Base de Datos
- Esquema
- Nombre del SP
- Parámetros de Entrada.
- Parámetros de Salida.
Supongamos que hemos agregado una nueva configuración, con sus parámetros de entrada y salida
v1
getLocalidades
BAPY
creditopy
pkg_dimo_ceibo.sp_ciudades
Para consumir el servicio tomamos de base el path raíz que mencionamos mas arriba reemplazando el valor por los valores configurados.
Tomando como base
http://host/ws-tarjetahabiente/prmservices/v2/sprunner/prmGroup/prmVersion/prmServicio
El servicio será:
http://host/ws-tarjetahabiente/prmservices/v2/sprunner/datosGenericos/v1/getLocalidades
Y ya nada mas queda realizar una prueba vía postman. (En este caso el SP no recibe ningún parámetro de entrada)
A continuación se describe las opciones que se despliegan al usuario:
- TARJETA DE CREDITO: Ejecuta el script
MENUCREDITO.scr
. - Query de Control - Comercios: Ejecuta el script
MenuOperComercio.sh
. - Actualizaciones para el proceso diario: Ejecuta el script
MenuActualizaProceso.sh
. - Reportes de la Diaria: Ejecuta el script
REPORTES.scr
. - Reportes de Novedades de Usuarios: Ejecuta el script
USNOV.scr
. - Impresion Informes de Comercios: Ejecuta el script
MenuImprimeComerio.sh
. - Querys de Socios: Ejecuta el script
MenuOperSocios.sh
. - Deposito de archivos SFTP PANAL: Ejecuta el script
SFTP_PANAL.scr
. - Generacion de Resumenes (Usuarios): Cambia al directorio de impresiones y ejecuta
RESUMENES.scr
. - Impresion de Resumenes (Usuarios): Ejecuta una serie de scripts (
Selec_COLA.sh
ySelec_YYYY.sh
), solicita información al usuario (como emisor y periodo), y realiza la impresión de resumenes. - Cancelacion de spool de $USER: Muestra las impresiones disponibles (
lpstat
), solicita al usuario el trabajo a cancelar, y cancela la impresión seleccionada. - Consulta de pagina de Resumenes: Ejecuta un comando SQL para obtener y mostrar información sobre una cuenta específica.
- Conversion Debitos Automaticos Manuales: Ejecuta el script
Convert_Da_Manual.sh
. - Captura de MAEOPIN de intercambio: Ejecuta el script
Captura_MAEOPIN.sh
. - Conciliacion de Operaciones Locales y Extranjeras: Ejecuta el script
MenuConciliaciones.sh
. - Backups: Actualmente muestra el mensaje "NO DISPONIBLE AUN".
- Especiales: Ejecuta un proceso especial definido por el comando
exec PR_SCRIPT;
en Oracle.
Descripción de los pasos
TARJETA DE CREDITO:
Autor: Arturo Sosa
Fecha:
Fecha modificación:
Versión: 1.0.0.0