Filtro de Tipo de Documento
Este documento describe cómo funciona y se configura el procedimiento fil_subtipodocumento,
el cual permite obtener la lista de subtipos de documento disponibles para un usuario,
filtrando los resultados según el parámetro @td. Para el valor 1 se esperan los subtipos de solicitud
y para el 2 se esperan los subtipos de orden de trabajo.
Adicionalmente, se informa cómo manejar el procedimiento fil_prioridad para la asignación
de las prioridades según el documento al que se quiere afectar (doc_documento.solicitud, doc_documento.ot).
Referencias
- SO-570: Implementar parámetro tipoDocumento para ajustar visualización del campo documento según funcionalidad en la APP
- SO-507: Al crear una solicitud, NO está teniendo en cuenta el estado
Información de Versiones
Versión de Lanzamiento
Versiones Requeridas
| Aplicación | Versión Mínima | Descripción |
|---|---|---|
| SAMMAPI | >= 1.2.22.0 | API principal |
| SAMM LOGICA | >= 5.6.24.2 | Lógica de negocio |
| SAMM CORE | >= 2.0.19.3 | Core del sistema |
| BASE DE DATOS | >= C2.1.10.0 | Base de datos SQL Server |
Requisitos Previos
Antes de utilizar o configurar este procedimiento, asegúrese de tener:
- Acceso a la base de datos por medio del usuario superadministrador
- Verificar la creación del SP
fil_subtipodocumento - Contar con la versión actualizada de la APP
El procedimiento debe iniciar con las tres letras fil.
Información del Servicio
El procedimiento fil_subtipodocumento actúa como fuente de datos para la selección
del subtipo de documento en la aplicación. Acepta el ID de usuario, un identificador
de entidad (@p_eid) y un tipo de documento (@td) para contextualizarlo, y retorna
los subtipos de documento esperados.
Parámetros del procedimiento
| Parámetro | Tipo | Descripción |
|---|---|---|
@p_id_usuario | INT | ID del usuario activo en la APP |
@p_eid | VARCHAR(50) | Identificador de entidad asociada a SAMM |
@td | VARCHAR(50) | Tipo de documento (nuevo parámetro) |
Ejecución
EXEC [dbo].[fil_subtipodocumento]
@p_id_usuario = 5,
@p_eid = '01',
@td = '2'
Respuesta
| ID | codigo | subtipoDocumento |
|---|---|---|
2 | OTT | Orden de Trabajo |
Configuración - fil_subtipodocumento
Paso 1: Creación o actualización del procedimiento
El procedimiento debe existir en la base de datos. Ejecute el siguiente script para crearlo o actualizarlo:
CREATE OR ALTER PROCEDURE [dbo].[fil_subtipodocumento]
@p_id_usuario INT,
@p_eid VARCHAR(50),
@td VARCHAR(50) -- Parámetro nuevo
AS
BEGIN
SET NOCOUNT ON;
-- 1: Retorna todos los subtipos activos de solicitud
IF @td = '1'
BEGIN
SELECT
id,
subtipoDocumento_codigo AS codigo,
subtipoDocumento
FROM doc_subtipodocumento
WHERE id_tipodocumento = 1
AND id = 1;
END
-- 2: Retorna todos los subtipos activos de Orden de Trabajo
ELSE IF @td = '2'
BEGIN
SELECT
id,
subtipoDocumento_codigo AS codigo,
subtipoDocumento
FROM doc_subtipodocumento
WHERE id_tipodocumento = 2
AND id = 2;
END
END
Paso 2: Activación en _columnas
Se debe relacionar el procedimiento anteriormente creado o modificado en la tabla condición de doc_documento.
SELECT condicion
FROM _columnas
WHERE tabla = 'doc_documento'
AND columna = 'id_subtipoDocumento'
UPDATE _columnas
SET condicion = 'fil_subtipodocumento'
WHERE tabla = 'doc_documento'
AND columna = 'id_subtipoDocumento'
Paso 3: Prueba de ejecución
Ejecute el procedimiento con distintos valores para validar su comportamiento.
EXEC [dbo].[fil_subtipodocumento]
@p_id_usuario = 1,
@p_eid = '01',
@td = '1' -- ó @td = '2'
EXEC [dbo].[fil_subtipodocumento]
@p_id_usuario = 5,
@p_eid = '01',
@td = '1' -- ó @td = '2'
Paso 4: Configuración de campos del formulario en mostrarEnApp
UPDATE _columnas
SET mostrarEnApp = 1
WHERE tabla = 'doc_documento'
AND columna IN ('id_subtipoDocumento', 'motivoServicio');
UPDATE _columnas
SET mostrarEnApp = 1
WHERE tabla = 'doc_documento.ot'
AND columna IN ('motivoServicio', 'id_tipoServicio', 'email');
UPDATE _columnas
SET mostrarEnApp = 1
WHERE tabla = 'doc_documento.solicitud'
AND columna IN ('id_subtipoDocumento', 'motivoServicio', 'solicitante', 'telefono', 'email');
Paso 5: Desactivar campos requeridos
UPDATE _columnas
SET requerido = 0
WHERE tabla = 'doc_documento'
AND columna NOT IN ('id_subtipoDocumento');
UPDATE _columnas
SET requerido = 0
WHERE tabla = 'doc_documento.ot'
AND columna NOT IN ('motivoServicio', 'id_tipoServicio');
UPDATE _columnas
SET requerido = 0
WHERE tabla = 'doc_documento.solicitud'
AND columna NOT IN ('id_subtipoDocumento', 'motivoServicio', 'solicitante', 'telefono', 'email');
Configuración - fil_prioridad
Paso 1: Creación o actualización del procedimiento
El procedimiento debe existir en la base de datos. Ejecute el siguiente script para crearlo o actualizarlo:
CREATE OR ALTER PROCEDURE [dbo].[fil_prioridad]
@p_id_usuario INT,
@p_eid VARCHAR(50),
@td VARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
-- 1: Retorna todas las prioridades activas de solicitud
IF @td = '1'
BEGIN
SELECT id, prioridadDocumento_codigo AS codigo, prioridadDocumento
FROM doc_prioridadDocumento
WHERE doc_prioridadDocumento.id_tipoDocumento = 1
AND id IN (1); -- Colocar las prioridades a mostrar o pausar la condición para mostrarlos todos
END
-- 2: Retorna todas las prioridades activas de Orden de Trabajo
ELSE IF @td = '2'
BEGIN
SELECT id, prioridadDocumento_codigo AS codigo, prioridadDocumento
FROM doc_prioridadDocumento
WHERE id_tipoDocumento = 2
AND id IN (5, 6); -- Colocar las prioridades a mostrar o pausar la condición para mostrarlos todos
END
END
Paso 2: Activación en _columnas
Se debe relacionar el procedimiento anteriormente creado o modificado en la columna condición de doc_documento.
SELECT condicion
FROM _columnas
WHERE tabla = 'doc_documento'
AND columna = 'id_prioridadDocumento'
UPDATE _columnas
SET condicion = 'fil_prioridad'
WHERE tabla = 'doc_documento'
AND columna = 'id_prioridadDocumento'
Paso 3: Prueba de ejecución
Ejecute el procedimiento con distintos valores para validar su comportamiento.
EXEC [dbo].[fil_prioridad]
@p_id_usuario = 1,
@p_eid = '01',
@td = '1' -- ó @td = '2'
EXEC [dbo].[fil_prioridad]
@p_id_usuario = 5,
@p_eid = '01',
@td = '1' -- ó @td = '2'
Resultado Esperado
Una vez completada la configuración:
- Gestión de Equipos - Crear Servicio: Al ingresar al menú de gestión de equipos y acceder a crear servicio, solo se deben visualizar subtipos de órdenes de trabajo.
- Gestión de Equipos - Crear Novedad: Al ingresar al menú de gestión de equipos y acceder a crear novedad, solo se deben visualizar subtipos de solicitud.
- Campos configurados visibles: Se deben visualizar en cada documento únicamente los campos anteriormente configurados.
- Generación de documentos: Cada uno de los documentos debe generarse de manera correcta.
Resolución de Problemas
El procedimiento no retorna resultados
Verifique que:
- El valor del parámetro
@tdcorresponda a'1'para solicitudes o'2'para órdenes de trabajo - Los registros en
doc_subtipodocumentotengan elid_tipodocumentocorrecto - El usuario indicado en
@p_id_usuarioesté activo en la APP
Los subtipos no aparecen en la APP
Confirme que:
- El campo
condicionen_columnasesté actualizado con el valorfil_subtipodocumento - El campo
mostrarEnAppesté en1para las columnas requeridas - La versión de la APP sea
>= 2.3.0.1
Las prioridades no se filtran correctamente
Revise que:
- El campo
condicionen_columnasesté actualizado con el valorfil_prioridad - Los IDs de prioridad en el procedimiento
fil_prioridadcorrespondan a los registros existentes endoc_prioridadDocumento - El parámetro
@tdse esté enviando correctamente desde la APP
Errores Conocidos
- Sin errores conocidos al momento de redactar este documento.