En los múltiples proyectos con Siebel CRM surge la necesidad de tener en cuenta los días hábiles y los días festivos según la zona geográfica, horario laboral del cliente cuando sumamos X días en un campo de tipo fecha para cumplir con los requerimientos del cliente o simplemente por obligación legal como es el caso de los service requests o trouble tickets.
Después de búsquedas, la mejor forma de lograr el objetivo y tratando de reducir el uso de eScript lo máximo posible en este post os presento la forma más fácil y elegante y a la vez administrable por parte del cliente.

La clave está en un business service "FS Holiday API Service" y su método GetResponseTime.
Podemos invocar el método bien con la ayuda del eScript (seria lo único código que necesitaríamos) o usando un campo calculado haciendo uso de la función InvokeServiceMethod pasando todos los parámetros que detallare a continuación.
Los parámetros requeridos son los siguientes:
- Start Time – fecha inicial a cuál queremos sumar los días (también se pueden sumar horas)
- Response Time – el tiempo que queremos sumar en días horas etc.
- Time Zone - la zona geográfica a tener en cuenta (ex: GMT-05:00 Bogota, Lima, Quito)
- Priority – siempre 1
- ServiceCalendarId - el row_id del calendario laboral que queramos usar (su creación la detallare en otro post)
- Time Unit – Dias (también se puede usar cualquier otra unidad de tiempo siempre teniendo en cuenta el idioma que usamos en la aplicación)
- Commited Time – es el parámetro de salida del método que contiene la fecha calculada.
Para crear un calendario laboral tenemos que ir a la aplicación Site Map --> Administración de Servicios --> Programaciones.
Crearemos una nueva programación cuyo Row Id tenemos que pasar en el parámetro ServiceCalendarId del método indicado anteriormente.
En la segunda parte explicare como se crea un calendario laboral y los días festivos asociados.




