Uygulama İş Akış Kaydında Koşul Tanımlamaları - PDF
Download "Uygulama İş Akış Kaydında Koşul Tanımlamaları"
1 İŞ AKIŞ YÖNETİMİ YENİLİKLERİ Amaç ve Fayda İş Akış Kayıtlarında yapılan değişiklikler ile; İş akış kayıtlarının koşula bağlı tanımlanabilmesi, İş akış kaydında bulunan açık işlerin farklı iş akış kaydına transferinin yapılabilmesi sağlanmıştır. Yayın Tarihi 30/05/2005 Kategori [X] Yeni Fonksiyon Ürün Grubu [X] Fusion (Oracle) Modül [X] İş Akış Yönetimi Versiyon Önkoşulu [X] Veritabanı Önkoşulu (Oracle) [X] Versiyon Önkoşulu (3.0.4) Yükleme ve Gereken Dosyalar [X] WorkFlow.dll [X] Wftrk.dll [X] Kultrk.dll Yükleme Sonrası İşlemler [X] DBUPDATE Programının Çalıştırılması [X] Paket Sürümünün Yapılması Uygulama İş Akış Kaydında Koşul Tanımlamaları İş Akış Sistemi içinde akış kaydı tanımlanırken bu akışa dahil edilecek kayıtlar için bir kısıtlama yapılamıyordu. Ancak programda yapılan değişiklikler ile akışa dahil edilecek kayıtlar için kısıtlama yapılabilmesi desteklenmiştir. Örneğin; müşteri siparişleri için iş akış kaydı tanımlandığında, programda girilen ya da üzerinde değişiklik yapılan tüm müşteri siparişleri için iş akışı uygulanmaktaydı. Ancak sadece belirli müşteriler için girilen siparişlerin iş akış kayıtlarına dahil edilmesi, ya da tutarı _YTL nin altındaki siparişlerin kodlu iş akışına, üstündekilerin ise kodlu iş akışa dahil edilmesi sağlanmıştır. Uygulamanın işleyişi Stok Sabit Kayıtları üzerinden anlatılacaktır. Örneğimizde, stok sabit kaydı yapıldığında, bu kaydın iş akış sistemine dahil edilmesi belli koşula bağlı olacaktır. Bunun için, İş Akış Kayıtlarına eklenen Koşul Tanımalamaları bölümü kullanılmaktadır.
2 İş tanımlamaları bölümünde hangi işler için iş akışı yapılacağı belirlenmektedir. Örneğimize göre girilen stok kartı kaydı için akış uygulanacaktır. Ancak sadece belirli özelliğe sahip işler için iş akışı yapılması isteniyor ise, Koşul Tanımlamaları sayfasında Visual Basic script i kullanılarak gerekli tanımlamalar yapılmalıdır. Koşul Tanımlama ekranında aşağıdaki şablona göre kısıt verilebilir. IF... AND... THEN OK=TRUE Bu cümle içinde boş geçilen bölümlerde koşul verilecektir. Verilen koşula uygun kayıt bulunması halinde, ilgili kayıt iş akışa dahil edilecektir. Ancak girdiğiniz kayıt verilen koşula uymuyorsa akışa dahil edilmeyecektir. Boş geçilen bölümde ilk olarak koşul verilecek sahanın bulunduğu tablo ya da view adı verilir. Örneğin stok sabit kartında bulunan stok kodları için koşul tanımlanacaksa, ilk olarak TBLSTSABIT tablosu ya da STSABIT view u yazılmalıdır. Tablo veya view adı yazıldıktan sonra araya _ işareti koyularak saha adı belirtilir. Burada amaç, hangi tablodaki saha için koşul verileceğinin belirlenmesidir. Örneğimizde stok sabit bilgilerindeki stok kodu için koşul tanımlanacağından, TBLSTSABIT_STOK_KODU yazılmalıdır. Saha adından sonra ise, parantez içinde kaçıncı sıradaki bilginin kontrol edileceği belirlenir. Sıra numarası belirtilirken parantez içinde istenen sıranın bir eksiği yazılmalıdır. Şöyleki, stok kartı tanımlanırken oluşacak kayıt sayısı tektir. Dolayısıyla birinci kayıt için koşul verilmelidir. Birinci kayda bakılacağı için (0) girilmelidir. Ancak İş akış kayıtlarında desteklenen
3 ödeme emri entegrasyonu ve alındı/verildi bordro kayıtlarında kayıt sayısı genellikle birden fazla olduğundan kaçıncı kaydın kontrol edileceği belirlenebilir. Örneğin cari hesap çek alındı kaydı yapıldığında, alındı bordrosu içinde birden fazla çek kaydı olabilir. Ancak üçüncü çekin kontrol edilmesi isteniyorsa (2) girilmelidir. Buna göre kaydettiğiniz alındı bordrosunda üçüncü sırada bulunan çekin, verilen koşula uyup uymadığı kontrol edilecektir. Koşula uyması halinde oluşturulan alındı bordrosundaki tüm kayıtlar iş akışa dahil edilecektir. Ancak koşula uymuyorsa, oluşturulan kayıtların hiçbiri akışa dahil edilmeyecektir. Fatura, irsaliye ve sipariş kayıtlarında birden fazla kelem girişi yapılabilmesine rağmen oluşan belge tek olacağından, koşul tanımlanırken kayıt sırası olarak (0) girilmelidir. Dolayısıyla ilk kayıttan farklı bir kaydın kontrol edilebileceği işlemler: Ödeme Emri Entegrasyonu, Cari Hesap Çek/Senet alındı Kaydı, Cari/Tahsil/Teminat Hesaba Çek/Senet Cirosu dur. Hangi tablodaki hangi sahaya koşul verileceği belirtildikten sonra koşul yazılmalıdır. Stok kartı örneğine göre grup kodu G01 olan stok kartlarının akışa dahil edilmesi isteniyorsa koşul, TBLSTSABIT_STOK_KODU(0)= G01 şeklinde olmalıdır. IF TBLSTSABIT_STOK_KODU(0)= G01 THEN OK=TRUE Birden fazla saha için koşul verilmesi isteniyorsa, ilk koşuldan sonra AND yazılarak ikinci koşul verilebilir. IF TBLSTSABIT_STOK_KODU(0)= G01 AND TBLSTSABIT_KOD_1(0)<> K001 THEN OK=TRUE Yukarıdaki tanımlamaya göre, stok kartı kaydı sırasında stok grup kodu G01 olan ancak Kod-1 i K001 olmayan stoklar iş akışa dahil edilecektir. Koşul tanımlaması bu formatta yapıldığında, tanımlanan işlemin master bilgilerinin tutulduğu tablodaki sahalar için koşul verilebilir. Stok kartı kaydı yapıldığında temel bilgiler TBLSTSABIT tablosuna atıldığından, koşul tanımlamada sadece bu tabloda bulunan sahalar kullanılabilecektir. Siparişler için iş akış koşulları tanımlanmak istendiğinde, SIPAMAS, fatura belgeleri
4 için FATUIRS, çek işlemleri için MCEK vb. tablo ve viewların kullanılması gerekmektedir. Örnek: Örneğin; Cari Kodu sahasına girilen müşteri siparişlerinin iş akışına dahil edilmesi isteniyor ise aşağıdaki gibi tanımlama yeterli olacaktır. Yukarıdaki ekranda, sipariş bilgilerinin tutulduğu TBLSIPAMAS tablosu için tanımlama yapılmıştır. TBlSIPAMAS tablosu sipariş kayıtlarında girilen üst bilgileri tutmaktadır ve bu tabloda cari bilgisi CARI_KODU sahasında tutulduğundan, tanımlamada bu saha kullanılmıştır. Tanımlanan koşulun aktif kayıt için geçerli olması, girilen (0) parametresi ile sağlanmaktadır. Bu cümle ile yapılmak istenen şudur: TBLSIPAMAS tablosunda işlenen kaydın CARI_KODU sahası ise iş akış kaydı uygulansın, değil ise uygulanmasın. Bu durumda, cari kodu olmayan müşteri siparişleri için, kodlu işe bağlı iş akışı uygulanmayacaktır. İş akış koşulunun, master tablo dışında, başka bir tablo ya da view kullanılarak kontrol edilmesi isteniyorsa, yazılacak script in formatı da farklı olacaktır. Örnek: Cari risk toplamı sıfırdan büyük olan müşteriye kesilen faturaların iş akışına dahil edilebilmesi için, aşağıdaki script yazılmalıdır.
5 DIM TOPRISK DIM SQLSTR SQLSTR="SELECT CARISKBUL('E','TOP','" & TBLFATUIRS_CARI_KODU(0) & "','" & TBLFATUIRS_TARIH(0) & "','NULL','NULL') FROM DUAL" NETDB.RecSQL (SQLSTR) TOPRISK = NETDB.FIELDS(0).AsFloat IF TOPRISK > 0 THEN OK =TRUE Script te cari risk toplamının bulunabilmesi için CARISKBUL fonksiyonu kullanılmıştır. İş Akışları Arası Transfer İş Akış Yönetimi modülüne eklenen İş Akışları Arası Transfer işlemi ile, işten ayrılan ya da izne çıkan kullanıcıda bekleyen açık işlerin diğer kullanıcılara aktarılması sağlanmıştır. Bu işlem ile açık işler, farklı bir iş akış yolunda tanımlı kullanıcılara aktarılmaktadır. Dolayısıyla, aynı iş için farklı bir iş akış yolu tanımlanması gerekmektedir. Bu tanımlama İş Akış Kayıtları ve ardından İş Akış Yolu Kayıtlarının tanımlanması ile yapılabileceği gibi, İş Akış Yolu Kopyalama işlemi ile eski yolun kopyalanması ve yeni oluşan yoldaki tanımlamaların değiştirilmesi suretiyle de yapılabilir. Kaynak Yol: İşten ayrılan ya da izne çıkan personelin bulunduğu iş kodunun girileceği alandır.
6 Hedef Yol: İşten ayrılan ya da izne çıkan personel yerine yeni bir personelin tanımlandığı iş kodudur. Dikkat! Kaynak Yol ile Hedef Yol sahalarına girilen iş kodları aynı olamaz. Kaynak yolda bulunan aktarılacak işler için mutlaka yeni bir yol tanımlanması gerekmektedir. Kaynak Yol Kapatılsın: Bu seçeneğin işaretlenerek transfer kaydı tamamlandığında eski yol pasif hale getirilcektir ve daha sonraki işlemler sırasında kullanılmayacaktır. Bu durumda, aynı iş için tanımlanan diğer yollar kullanılabilecektir. Ancak eski yolun daha sonra tekrar kullanılması istenirse, İş Akış Kayıtlarında bulunan Pasif seçeneği kaldırılarak ilgili akış kaydı aktif hale getirilebilir. Yukarıda açıklanan kaynak ve hedef yol seçimleri yapıldıktan sonra Tab tuşu ile ilerlediğinizde Kaynak Yol sahasına girilen iş koduna ait kullanıcılar ve bu kullanıcılara ait açık iş sayısı aşağıya gelecektir. Hedef kullancı sütununda ise, Hedef Yol sahasına girilen iş koduna ait kullanıcılar seçilecektir. Açık işlerini aktarmak istediğiniz kullanıcıya ait satırda Hedef Kullanıcı sahasına gelip çift klik yaparak sahayı aktif hale getirebilirsiniz. Daha sonra aktif olan aşağı ok tuşuna basarak, hedef iş akış kaydında tanımlanan kullanıcıların tamamını görebilir ve açık işlerin aktarılmasını istediğiniz kullanıcıyı seçebilirsiniz. Hedef kullanıcı seçimi yapıldıktan sonra Enter tuşuna basarak diğer satıra geçip kullanıcı seçimi yapılır. Transfer işlemi sırasında sadece işten ayrılan ya da izne çıkan kullanıcıda bekleyen açık işler değil, seçilen kaynak yoldaki tüm açık işlerin hedef yoldaki kullanıcılara aktarılması gerekmektedir. Aksi halde işlem tamamlanamayacaktır. Açık işlerin tamamı için hedef kullanıcı seçimi yapıldıktan sonra Tamam butonuna bastığınızda transfer işlemi kaydedilecektir. Bu uygulamayı bir örnek ile açıklayalım. Müşteri Siparişleri için kullanılan iş akış yolu aşağıdaki gibi olsun; Bu iş kodunda tanımlı Dilek isimli kullanıcının işten ayrılması durumunda, bu kullanıcıda bekleyen açık işlerin Ahmet isimli kullanıcıya aktarılması gerekecektir. Bu durumda yukarıdaki iş kodunun tanımlı olduğu iş için farklı bir iş akış kaydı tanımlanmalıdır. Yeni tanımlanan iş kodunun bir önceki iş akış kaydından farkı, Dilek kullanıcısı yerine Ahmet kullanıcısının tanımlanmış olmasıdır.
7 Daha sonra İş Akışları Arası Transfer işlemi ile tüm açık işler, yeni tanımlanan iş kodundaki kullanıcılara aktarılmalıdır. İşlem sırasında Kaynak Yol Kapatılsın seçeneği işaretlendiğinde nolu iş kodu pasif hale gelecektir. Dolayısıyla, bu işlemden sonra girilen müşteri siparişlerinde bu iş akış yolu kullanılmayacaktır. Kaynak yolun kapatılmaması halinde ise, transferden sonra grilecek müşteri siparişi kaydı sırasında, siparişin hangi yola dahil edileceği sorgulanacaktır.