Siebel İş Günü/Saati Hesaplama

 

Selamlar,

Siebel'da iki tarih arasındaki iş günü (workday)  hesaplanması için kullanılan (resmi tatiller dahil) vanilla servisi anlatmaya çalışacağım. Yapımı öğrendikten sonra gerçekten çok kolay. Fakat kesinlikle dedicated client'ta denemeyin çalışmıyor.


Gelelim servisimize;

Servisimizin ismi; FS Holiday API Service

Methodumuzun ismi; GetElapsedBusinessTime

 

Servisin aldığı inputlar;

Schedule Time Zone= Bununla ilgili aşağıda Schedule Time Zone başlığı altında bahsedeceğim.

Start Time= MM/DD/YYYY HH24:MI:SS formatında olmak zorunda, ve bu başlangıç tarihimiz.

Calender Id= Bununla ilgili aşağıda Calender Id başlığı altında bahsedeceğim. / Takvimizin row idsi

End Time= MM/DD/YYYY HH24:MI:SS formatında olmak zorunda, ve bu bizim bitiş tarihimiz.

Time Unit= Hours / Days

 

Servisimizin verdiği output;

Business Time 

a)  Time Unit input'una Hours girdiysek küsuratlı olarak saati verir. Örneğin: 4.16.

b)  Time Unit input'una Days girdiysek sadece tam sayı ve buçuklu olarak günü verir. Örneğin;  2 ya da 2,5 gibi.


Schedule Time Zone

Bu input her Siebel versiyonu için farklı olabilir. Bizim kullandığımız version 8.1.1.1 ve bizim time zone “(GMT+02:00) Athens, Beirut, Istanbul, Minsk”. Fakat dediğim gibi her version farklı olabilir. 

Bunun için; Yönetim – Veri à Saat Dilimi Yönetimi’ndeki list applette olan değerlerden hangisi sizin time zone’a uyuyorsa onu direkt almalısınız. 

Ayrıca default olan time zone’nuzu Yönetim – Uygulama à Sistem Tercihleri pathinden Default Time Zone olarak aratarak bulabilirsiniz.

Bu input string olarak bu Time Zone’u almalı.

Calender Id

Bu input aslında direkt Takvimizin row_id si olacak fakat bunun için biraz detaya gireceğim.

Siebel da takvimlerimiz Yönetim – Servis à Çizelgeler ‘ de bulunuyor.   

Aşağıdaki ekran görüntüsünde de gördüğünüz gibi bu ekrandan yeni bir çizelge ekleyip yolumuza devam edeceğiz. Verdiğimiz input direkt bu çizelgenin rowid sidir.

Ekran görüntüsünden sonra bir kaç önemli detay paylaşacağım.



Gelelim en önemli yerine bu servis nasıl çalışır ?

Çizelgemizde aşağıdaki ekran görüntüsünde de gördüğünüz gibi Çizelge Saatleri appleti bulunuyor. Bu applette direkt olarak iş saatlerimizi yazıyoruz. Eğer buraya Cumartesi Pazar yazmazsanız otomatik olarak hafta sonunu çıkartmış olur hesaplarken.



Bayram vb gibi resmi tatilleri nasıl hesaplamadan çıkartacağız?

Çizelgemizi aşağıdaki ekran görüntüsünde de gördüğünüz gibi bir İstisna yaratıp çizelgemize bunu join'liyoruz. Daha sonra İstisna Saati Toplam applet'inde direkt olarak milli bayram, dini bayram, yarım günler, yılbaşı gibi resmi tatil günlerini belirtiyoruz. Hesaplarken bu tarihleri direkt olarak çıkartıp doğru bir sonuç veriyor.






Yorumlar

Bu blogdaki popüler yayınlar

Siebel OpenUI Presentation Model ve Physical Renderer Yapısı

Long running query'ler için Query Plan fixleme

Profile Attribute Listesi