Kayıtlar

Ekim, 2020 tarihine ait yayınlar gösteriliyor

Random Numara Oluşturma

Resim
Random Numara Oluşturma Merhaba, geliştirmelerimizde ara ara gereken bir konu; random numara generete etmeyi anlatacağım. Kullanım yerine örnek vermek gerekirse, telefonlanlara gönderilen doğrulama kodlarını bu yöntem ile oluşturabiliriz. Gelelim nasıl yapılacağına. WF'umuza ekleyeceğimiz sadece 2 step ile yapacağız bunu. Step 1: Business Service Name :  SIS OM PC Service Business Service Method:  Get Next RowId  Input Argument : Yok Output Argument Property Name :  PinCode Type :  Output Argument Output Argument :  RowId Step 2: Business Service Name :  Workflow Utilities Business Service Method :  Echo Input Argument :  Yok Output Argument Property Name :  PinCode Type :  Expression Value:  RowIdToRowIdNum([&PinCode]) Benim geliştirmemde echo step'inden çıkan random numarayı bir kolona yazıyoruz ve müşteriye doğrulama kodu olarak gönderiyoruz. Textbox'a girilen değer ile kolona yazdığımız değeri kontol edip doğrulama sür...

Workflow Simulate on GUI

Resim
 Merhaba, Yapılan workflow'ları test etmek için çoğu zaman geliştirmenin tamamını bitirmek zorunda kalırız (run time event ile tetikleme, script üzerinden tetikleme vs.). Fakat WF'u test etmek için bütün geliştirmeyi tamamlamak zorunda değiliz. GUI üzerinden WF'a gerekli inputları vererek simulate edebilirz. WF simulate etmek için. Site Map --> Administration - Business Service --> Simulator ekranı açılır. Not: Bu ekran sadece WF değil herhangi bir Business Service'i tetiklemenizi sağlar fakat bu yazımızda WF tetiklemeyi açıklayacağım. Bu ekranda simulator appletine aşağıdaki değerler girilir. Service Name : Workflow Process Manager Method Name : RunProcess Iterations : 1 (default setlenir)   Input Arguments appletinde "Workflow Process Manager" BS'inin inputları verilir. Type: PropertySet Property Name: Pick applet açılır ve aşağıdaki değerler girilir.(ProcessName zorunlu bir property'dir. bunun dışında WF'unuz hangi inputları alıyorsa o i...

Siebel İş Günü/Saati Hesaplama

Resim
  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 inpu...

Workflow "Next Record Operation" son record sorunu

Resim
Merhaba, WF’da atılan query sonucunda dönen sonuçlar üzerinde işlem yaparken kullanılan “Next Record” operation’ını ara sıra sorgu sonucu gelen son kayıt üzerinde işlem yapmıyor. Bunu sebebi ise kullandığımız “NoMoreRecords" output’u 1 kayıt daha varken true dönüyor ve biz bu parametreye göre işlemi sonlandırırsak son kaydı güncellemiyor. Aşağıdaki linkte oracle da bunu kabul etmiş ve bunu bug olarak ele almış. https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=368940557532926&id=1674175.1&_afrWindowMode=0&_adf.ctrl-state=itk8ye15r_4   Bu sorun çözümü için ilk sorguda “NumAffRows" değerini çekip “Next Record” adımında bu değişkeni bir eksilterek decision pointte bu değişkeni kontrol etmek. 1 - query data:  2- check record count 3-   RecordCount - 1 4 – check record count after next record.

Crash Analizi

Resim
Crash Analizi Ekran Üzerinden Analiz: "Site Map" --> "Server Management - Diagnostics" ekranı failed process'leri gösterir. "Failed Process" appletinde "Failure Summary" kolonu çoğu zaman nokta atışı açıklamalar göstermese de çemberi daraltmak için oldukça yararlı. Bu ekranda "Failed Users Task" appletinde 0. saniye fail ettiği kısımdır.  "Failed Process Call Stack" appletinde ise yaşanan crash'in detayı yazar. Yine aynı ekranda "Affect Users on Failed Process" appletinde yaşanan crash'ten etkilenen userlar listelenir. Bu user'lar ekranlarında "Server Busy" hatası alırlar. Bu ekranı ben daha çok analiz için değil, analizi desteklemek için kullanıyorum. Tek başına bu ekrandan bir sonuca ulaşmak çok zor.  DB Seviyesinde Analiz: Yine analizi desteklemek için kullandığım bir diğer yöntem, S_DIAG tablosu. Bu tabloda hata detayında " Process exited because of a segment violation (SIGSEGV) ...