# Job SQL analisis de laboreo

**URL:** <https://bc.finneg.com/t/job-sql-analisis-de-laboreo/6386>\
**Category:** Agro\
**Tags:** instructivo, agro\
**Created:** [22 Enero, 2026 19:11 UTC](https://bc.finneg.com/t/job-sql-analisis-de-laboreo/6386 "2026-01-22T19:11:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![AcademiaFinnegans](https://bc.finneg.com/user_avatar/bc.finneg.com/academiafinnegans/32/23146_2.png) [@AcademiaFinnegans](https://bc.finneg.com/u/AcademiaFinnegans)\
**Post date:** [22 Enero, 2026 19:11 UTC](https://bc.finneg.com/t/job-sql-analisis-de-laboreo/6386/1 "2026-01-22T19:11:45Z")

</div>

# Instructivo: Automatización del Análisis de Labores e Insumos

## 1. Objetivo

Describir el proceso técnico para la creación y configuración de un Job en SQL Server que automatice la ejecución del procedimiento almacenado `ANALISISLABORESINSUMOS`. Este proceso asegura que las tablas de análisis se actualicen diariamente de forma desatendida.

## 2. Detalles del Job

- **Nombre del Job:** `Job_AnalisisLaboresInsumos_Diario`

- **Frecuencia:** Diaria.

- **Horario de ejecución:** 23:00 hs (11:00 PM).

- **Acción:** Ejecución del SP `ANALISISLABORESINSUMOS`.

## 3. Requisitos Previos

1. **Estado del Servicio:** El servicio **SQL Server Agent** debe estar en ejecución (índice verde en el Object Explorer).

2. **Permisos:** El usuario que ejecute el script debe tener el rol `sysadmin` o pertenecer a `SQLAgentUserRole` en la base de datos `msdb`.

3. **Base de Datos:** Identificar el nombre exacto de la base de datos donde reside el procedimiento almacenado.

* * *

## 4. Procedimiento de Implementación

### Paso 1: Configuración del Script

Antes de ejecutar el script en el entorno, es imperativo modificar el parámetro `@database_name` en la línea del **Paso 4** del código, reemplazando `'TuBaseDeDatos'` por el nombre real de la base de datos de producción/operación.

### Paso 2: Ejecución del Script SQL

Copiar y ejecutar el siguiente bloque de código en una ventana de consulta (New Query) en SQL Server Management Studio (SSMS):

SQL

```auto
USE msdb;
GO

-- A. Limpieza: Elimina el Job si ya existe para evitar duplicados o errores de conflicto
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'Job_AnalisisLaboresInsumos_Diario')
BEGIN
    EXEC msdb.dbo.sp_delete_job @job_name = N'Job_AnalisisLaboresInsumos_Diario';
END
GO

-- B. Creación del Contenedor del Job
DECLARE @jobId BINARY(16);

EXEC msdb.dbo.sp_add_job 
    @job_name = N'Job_AnalisisLaboresInsumos_Diario', 
    @enabled = 1, 
    @description = N'Ejecuta el SP ANALISISLABORESINSUMOS diariamente a las 11 PM.', 
    @job_id = @jobId OUTPUT;

-- C. Configuración del Paso (Step) de ejecución
-- IMPORTANTE: Cambiar 'TuBaseDeDatos' por el nombre real de la BD
EXEC msdb.dbo.sp_add_jobstep 
    @job_id = @jobId, 
    @step_name = N'Ejecutar SP ANALISISLABORESINSUMOS', 
    @step_id = 1, 
    @cmdexec_success_code = 0, 
    @on_success_action = 1, -- Salir reportando éxito
    @on_fail_action = 2, -- Salir reportando error
    @database_name = N'TuBaseDeDatos', 
    @command = N'EXEC ANALISISLABORESINSUMOS', 
    @retry_attempts = 0, 
    @retry_interval = 0;

-- D. Programación del Horario (Schedule)
EXEC msdb.dbo.sp_add_jobschedule 
    @job_id = @jobId, 
    @name = N'HorarioDiario_23hs', 
    @enabled = 1, 
    @freq_type = 4, -- Tipo: Diario
    @freq_interval = 1, -- Repetir: Cada 1 día
    @active_start_time = 230000; -- Formato HHMMSS (23:00:00)

-- E. Asignación al Servidor Local
EXEC msdb.dbo.sp_add_jobserver 
    @job_id = @jobId, 
    @server_name = N'(local)';
GO

```

* * *

## 5. Verificación y Monitoreo

### Verificación Inicial

Para confirmar que el Job se ha creado correctamente, ejecute la siguiente consulta:

SQL

```auto
SELECT name, enabled, start_step_id, date_created 
FROM msdb.dbo.sysjobs 
WHERE name = 'Job_AnalisisLaboresInsumos_Diario';

```

### Ejecución de Prueba

Se recomienda realizar una ejecución manual inicial para validar que los permisos y la lógica del SP funcionen dentro del contexto del Job:

1. En el **Object Explorer** , expanda **SQL Server Agent** \> **Jobs**.

2. Click derecho en `Job_AnalisisLaboresInsumos_Diario`.

3. Seleccione **Start Job at Step…**.

### Monitoreo de Errores

En caso de falla, revisar el historial:

- Click derecho sobre el Job \> **View History**.

* * *

## 6. Resolución de Problemas Frecuentes

- **Error “Could not find stored procedure”:** Asegúrese de haber escrito correctamente el nombre de la base de datos en el parámetro `@database_name`.

- **El Job no corre a la hora programada:** Verifique que el servicio **SQL Server Agent** esté encendido.

- **Error de permisos (Truncate table):** El usuario que ejecuta el Agent debe tener permisos suficientes sobre las tablas de destino.

🚨 Nota: Solo apilica para clientes con Windows Server 🚨
