En el tip de hoy vamos a hablar de los calendarios en SAP. Esta es una funcionalidad que se utiliza en muchos módulos y en la cual podemos indicar los días hábiles y no hábiles para diferentes procesos.
Algunos ejemplos del uso de calendarios son los siguientes:
Calendario asociado a centros: Permite indicar aquellos días hábiles para un centro en concreto de tal forma que puedan planificarse necesidades, programar ordenes…etc.
Transacción OX10
Desarrollos a medida: Los calendarios pueden utilizarse en desarrollos Z para reporting o controlar ciertos procesos. Por ejemplo, un calendario donde indicamos los días de trabajo de los trabajadores para realizar previsiones.
Y muchísimos otros procesos.
CONFIGURAR CALENDARIOS
Los calendarios se configuran a través de la transacción SCAL:
Tenemos 3 objetos para la configuración de calendarios:
Días festivos: Con esta opción podemos definir los días festivos a través de la utilización de reglas para, posteriormente, incluirlos en el calendario de festivos.
Calendario de festivos: Es una recopilación de los días festivos, definidos en el punto anterior. El calendario de festivos se asocia posteriormente al calendario de fábrica.
Calendario fábrica: Es el elemento que se asigna en la parametrización, que básicamente consiste en un conjunto de días hábiles según la configuración anteriormente realizada.
Accediendo a la opción ‘Días festivos’ nos aparece la siguiente pantalla, con todos los festivos definidos en el sistema:
Si pulsamos en crear podemos definir de forma individual diferentes festivos:
Vamos a ver en detalle cada una de estas 5 opciones:
Con fecha fija: Se indica una fecha (día y mes) que siempre es festivo. Con la opción ‘Garantía’ podemos determinar cómo se comporta el festivo, establecer un criterio de clasificación, una categoría de festivo y una descripción o texto explicativo:
Con día fijo a partir de esta fecha: Se indica un día y el día de la semana a partir de esa fecha en que aplicará el festivo.
Distancia pascuas: Este apartado sirve para calcular los festivos asociados con la semana santa (cada año son distintos). Podemos indicar un número de días antes del domingo de pascua, o un número de días posteriores.
Domingo de pascua: Igual que el anterior, pero en este caso para identificar el domingo de pascua.
Festivo irregular: Hay algunos festivos que depende del año aplican o no. Con esta opción podemos definir un festivo matizando si aplica con el año.
Además de estas opciones, a cada festivo se le puede asignar una descripción, un texto breve y una clave de clasificación (utilizada para que sea más sencillo relacionar los festivos asociados a un país, categoría de festivo…etc.)
Una vez definidos todos los festivos individuales, los agruparemos en un Calendario de festivos.
El calendario de festivos tiene un año inicial y un año final, y en él se enumeran los diferentes festivos asociados.
Con la opción ‘visualizar definición’ visualizaremos la siguiente pantalla, en la que se informan todos los festivos
Con la opción ‘Visualizar calendario’ visualizaremos un resumen de todos los festivos por año:
Finalmente, si navegamos a la opción ‘Calendario de fábrica’ visualizaremos la siguiente pantalla:
En ella podemos ver la fecha de validez que tiene el calendario de fábrica. Además, si pulsamos en ‘Visualizar definición’ navegaremos a la siguiente pantalla:
En dónde podremos informar los días de la semana que se trabajan (en este caso de lunes a viernes) y el ámbito dónde vayamos a utilizar el calendario.
Una vez definido el calendario, ya podremos consultar su configuración con un calendario de fechas utilizando la opción Calendario y el sistema nos mostrará un resumen por año de la cantidad de días laborables y festivos:
Si necesitamos definir reglas especiales para determinados días en un año, podemos realizarlo utilizando la opción “Reglas especiales”. Por ejemplo, podemos definir un calendario de facturación mensual, en dónde solo el último día del mes es laborable.
Si no hubiera marcado el flag de “Día labor” estaría añadiendo con las reglas especiales, días festivos o excepciones adicionales. Es otra manera más sencilla de definir los festivos de un año, aunque habrá que acodarse cada año de definirlos como excepciones.
TRANSPORTE DE CALENDARIOS
Para transportar los calendarios, podemos hacerlos desde la misma transacción SCAL de forma estándar. El problema es que el transporte borrará todos los calendarios existentes en el sistema destino.
Por lo que lo recomendado es hacerlo a través de la transacción SCC4.
CALENDARIO EN NUESTROS DESARROLLOS
Si necesitamos disponer de la información de los calendarios en nuestros desarrollos, es muy sencillo hacerlo utilizando diferentes módulos de función estándar.
Por ejemplo, con el MF HOLIDAY_GET, indicando el periodo que queremos analizar y el calendario de fábrica.
El sistema nos devuelve la lista de días que son no laborables (por ser festivos o días considerados no hábiles en el calendario de fábrica).
Otro módulo de función muy interesante es el DAY_ATTRIBUTES_GET, que nos permite obtener los parámetros para un día o un intervalo de fechas (si el día es laboral o no, si es un festivo, etc).
Para obtener acceso a SAP, acceder al siguiente enlace.
Para ver más posts de SAP, consulta nuestro listado completo aquí.
Para acceder a nuestros cursos de SAP, podéis consultar este listado.
Para descargar los mejores manuales de SAP, acceder al siguiente enlace.
Hola, excelente articulo. Gracias por compartir. Sin embargo, me ayudas: tengo deshabilitada la opcion TRANSPORTE en la SCAL. Sabras donde puedo activarla?
Buenísimo tip!
Muchas gracias Juan Antonio!
Excelente tip!! Bien completo.
Un placer Noel 🙂
Excelente tip. Felicitaciones
Muchas gracias Jaime, es un placer!
Gracias por compartir 😊.
Es un placer!
Muy bien artículo y la información está muy precisa, deberías completar el artículo con los calendarios del proceso de lecturas (DM)
Hola Giovanny, lo tendremos en cuenta. Un saludo,
Hola, excelente articulo. Gracias por compartir. Sin embargo, me ayudas: tengo deshabilitada la opcion TRANSPORTE en la SCAL. Sabras donde puedo activarla?