¡Esta es una revisión vieja del documento!
# Integración de Gestión de Planillas
La integración permite acceder desde SICOF, específicamente desde el módulo de Nómina, a una aplicación web de Gestión de planillas.
La ventana web permite realizar diferentes operaciones relacionadas con las planillas, entre ellas:
- Generar plano. - Cargar plano. - Consultar planillas. - Realizar pagos. - Consultar información asociada a las planillas.
Nota: El acceso se recomienda identificar como Gestión de planillas, ya que la ventana no se limita únicamente a la carga de archivos.
—
## Paso 1. Ingreso a SICOF
Ingresar a la aplicación SICOF con un usuario válido.
Luego ingresar al módulo:
`Nómina`
—
## Paso 2. Generar plano
Ruta: `Nómina > Generar plano`
Desde esta ventana se determina si el usuario puede utilizar la integración con la aplicación web de Gestión de planillas.
Antes de habilitar la integración se validan:
- La empresa seleccionada. - El usuario logueado. - El operador de pago configurado para la integración.
—
## Paso 3. Validación del operador de pago de la empresa
El sistema valida si la empresa tiene activo el operador de pago de la integración, es decir, debe estar con anterioridad registrada en el operador de pago con el usuario autorizado.
### Empresa sin operador activo
Si la empresa no tiene activo el operador de pago:
- No se muestra el botón Gestión de planillas. - El usuario continúa utilizando el proceso normal de SICOF. - Los demás controles mantienen su comportamiento habitual.
Regla: Cuando la empresa no tiene habilitada la integración, el proceso tradicional no debe verse afectado.
—
## Paso 4. Validación del usuario
Si la empresa tiene activo el operador de pago, se valida si el usuario logueado está habilitado para utilizar la integración.
### Empresa con operador activo y usuario no habilitado
Si la empresa tiene el operador activo, pero el usuario no está habilitado:
- El botón Gestión de planillas queda bloqueado. - Los demás botones de la ventana también quedan bloqueados. - El usuario no puede ejecutar ninguna acción desde la ventana.
Regla: La habilitación del operador para la empresa no implica automáticamente que todos los usuarios puedan utilizar la integración.
### Empresa con operador activo y usuario habilitado
Si tanto la empresa como el usuario están habilitados:
- Se habilita el botón Gestión de planillas. - Los demás botones de la ventana se deshabilitan. - El usuario debe continuar el proceso mediante la aplicación web integrada.
—
## Paso 5. Matriz de validaciones
| Operador empresa | Usuario habilitado | Gestión de planillas | Otros botones | Resultado |
| — | — | — | — | — |
| No | No aplica | No aparece | Habilitados según proceso normal | Continúa proceso tradicional |
| Sí | No | Bloqueado | Bloqueados | No se permite ninguna acción |
| Sí | Sí | Habilitado | Deshabilitados | Se utiliza la integración |
—
## Paso 6. Construcción del contexto
Cuando el usuario está autorizado, PowerBuilder construye el contexto que será enviado a la aplicación web.
La estructura utilizada es:
```text idUser=<usuario>&idCompany=<empresa>&operatorCode=<operador>&token=<token> ```
Por ejemplo:
```text idUser=5078&idCompany=6040&operatorCode=86&token=ada-prod ```
Los valores utilizados en el desarrollo corresponden a:
- `idUser`: usuario logueado. - `idCompany`: empresa. - `operatorCode`: código del operador. - `token`: token de conexión.
—
## Paso 7. Codificación Base64
El contexto se convierte a Base64 mediante la función `wf_base64encode` desarrollada en PowerBuilder 12.5.
El flujo es:
```text Datos originales
↓
Construcción de parámetros
↓
UTF-8 / Blob
↓
Base64
↓
ctx ```
La URL final se construye agregando el contexto:
```text URL_BASE?ctx=<BASE64> ```
Importante: Base64 es una codificación y no un mecanismo de cifrado. Si el contexto contiene información sensible, debe utilizarse HTTPS y controles adicionales de seguridad.
—
## Paso 8. Apertura de la aplicación web
PowerBuilder obtiene el servicio de Internet y abre la URL mediante `HyperlinkToURL`.
La lógica general es:
```text PowerBuilder
↓
Construcción de datos
↓
Base64
↓
Construcción de URL
↓
GetContextService(“Internet”)
↓
HyperlinkToURL()
↓
Aplicación web ```
Se debe validar:
- Que el servicio de Internet esté disponible. - Que la URL sea construida correctamente. - Que `HyperlinkToURL` permita abrir la aplicación. - Que la aplicación web pueda procesar el parámetro `ctx`.
—
## Paso 9. Recepción del contexto en la aplicación web
La aplicación web recibe el parámetro:
```text ctx ```
El flujo esperado es:
```text ctx ↓ Decodificación Base64 ↓ Datos originales ↓ Identificación de usuario ↓ Identificación de empresa ↓ Identificación del operador ↓ Validación del token ↓ Acceso a Gestión de planillas ```
El resultado esperado es que la aplicación web pueda recuperar exactamente la información enviada desde PowerBuilder.
—
## Paso 10. Consulta del token
Para obtener el token de conexión se consulta:
`PRESUP01.PARAMETROS_SISTEMA`
La consulta utilizada contempla que el NIT almacenado pueda contener información adicional, como el dígito de verificación separado por coma.
```sql SELECT token_bd INTO :ls_token_conect FROM presup01.parametros_sistema WHERE INSTR(nit_empresa, :gd_nit_empresa) > 0 USING SQLCA; ```
Nota: La búsqueda mediante `INSTR` debe revisarse si existen NIT similares, ya que una búsqueda por contenido puede producir coincidencias parciales.
—
## Paso 11. Funcionalidades de Gestión de planillas
Una vez abierta la aplicación web, el usuario puede acceder a las funcionalidades disponibles para la gestión de planillas, entre ellas:
- Generación de plano. - Carga de plano. - Consulta de planillas. - Pago. - Otras operaciones relacionadas con la gestión.
—
## Flujo técnico
```text SICOF
│
└── Nómina
│
└── Generar plano
│
├── Validar empresa
│
├── Validar operador de pago
│
└── Validar usuario
│
├── Empresa sin operador
│ └── Proceso normal
│
├── Empresa con operador
│ ├── Usuario no habilitado
│ │ └── Bloquear controles
│ │
│ └── Usuario habilitado
│ └── Habilitar Gestión de planillas
│
└── Construir contexto
│
├── idUser
├── idCompany
├── operatorCode
└── token
│
↓
Base64
│
↓
URL + ctx
│
↓
Aplicación Web
│
↓
Gestión de planillas
```
—
## Reglas principales
1. La integración depende de que la empresa tenga activo el operador de pago. 2. La habilitación del operador para la empresa no autoriza automáticamente a todos los usuarios. 3. El usuario logueado también debe estar habilitado. 4. Si la empresa no tiene operador activo, el botón Gestión de planillas no aparece. 5. Si la empresa tiene operador activo y el usuario no está habilitado, se bloquean los controles de la ventana. 6. Si empresa y usuario están habilitados, se habilita Gestión de planillas y se deshabilitan los demás botones. 7. El backend debe validar nuevamente la autorización y no depender únicamente del bloqueo de la interfaz. 8. El contexto enviado mediante `ctx` debe ser procesado y validado antes de permitir operaciones.
—
## Seguridad
- Utilizar HTTPS para la comunicación. - No considerar Base64 como cifrado. - No registrar tokens completos en logs. - No mostrar tokens mediante mensajes al usuario. - Validar el contexto en el backend. - Validar nuevamente la autorización del usuario y la empresa. - Utilizar tokens con vigencia y alcance controlados.
—
[← Volver atrás](../nomina.md)