DATE_CONVERT_TO_FACTORYDATE
Convierte una fecha en «día de fábrica» y busca el día laborable siguiente o anterior.
- Transacción
SE37- Grupo
- Fechas
- Actualizado
- 21 de octubre de 2026
Para qué sirve
DATE_CONVERT_TO_FACTORYDATE usa un calendario de fábrica (transacción SCAL) para saber si una fecha es laborable. Si no lo es, devuelve el siguiente día laborable (CORRECT_OPTION = '+') o el anterior ('-').
También devuelve el número de día de fábrica, un contador de días laborables que permite sumar días hábiles con FACTORYDATE_CONVERT_TO_DATE.
Parámetros
Importing
Lo que recibe la función. En CALL FUNCTION se pasan tras EXPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
CORRECT_OPTION | — | '+' busca el siguiente día laborable; '-' el anterior.Por defecto: '+' |
DATEObligatorio | D | Fecha que se convierte. |
FACTORY_CALENDAR_IDObligatorio | TFACD-IDENT | Calendario de fábrica, por ejemplo 'ES'. |
Exporting
Lo que devuelve. En CALL FUNCTION se recogen tras IMPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
DATE | D | Fecha laborable resultante. |
FACTORYDATE | SCAL-FACDATE | Número de día de fábrica. |
WORKINGDAY_INDICATOR | — | Vacío si la fecha original era laborable. |
Excepciones
Errores que devuelve en sy-subrc, en el bloque EXCEPTIONS.
| Excepción | Cuándo se produce |
|---|---|
CALENDAR_BUFFER_NOT_LOADABLE | No se puede cargar el calendario. |
CORRECT_OPTION_INVALID | CORRECT_OPTION no es '+' ni '-'. |
DATE_AFTER_RANGE | Fecha posterior al rango del calendario. |
DATE_BEFORE_RANGE | Fecha anterior al rango del calendario. |
DATE_INVALID | Fecha no válida. |
FACTORY_CALENDAR_NOT_FOUND | El calendario no existe. |
Ejemplo
DATA: lv_laborable TYPE d,
lv_dia_fab TYPE scal-facdate.
" Primer día laborable a partir de hoy según el calendario 'ES'
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
correct_option = '+'
date = sy-datum
factory_calendar_id = 'ES'
IMPORTING
date = lv_laborable
factorydate = lv_dia_fab
EXCEPTIONS
factory_calendar_not_found = 1
date_after_range = 2
date_before_range = 3
OTHERS = 4.Errores y excepciones habituales
- DATE_AFTER_RANGE: el calendario de fábrica no cubre ese año; amplíalo en la SCAL.
- FACTORY_CALENDAR_NOT_FOUND: el identificador de calendario no existe; consúltalo en la SCAL.
Relacionadas
Funciones relacionadas
FACTORYDATE_CONVERT_TO_DATEWDKAL_DATE_ADD_FKDAYS
Más en Fechas
CONVERSION_EXIT_LDATE_OUTPUTADD_TIME_TO_DATERP_CALC_DATE_IN_INTERVALEND_TIME_DETERMINEC14B_ADD_TIMECALCULATE_DATECOMPUTE_YEARS_BETWEEN_DATESCONVERSION_EXIT_PDATE_INPUTCONVERSION_EXIT_PDATE_OUTPUTCONVERSION_EXIT_SDATE_OUTPUTCONVERT_DATE_TO_EXTERNALCONVERT_DATE_TO_INTERNAL
Transacciones y tablas
¿Dudas con esta función?
Pregunta en el foro de abap.es: la comunidad lleva años resolviendo dudas de ABAP en español.
Actualizado: 21 de octubre de 2026