Kullanıcı arayüzlerinde amaca uygunluk ve olası hataları engelleme yaklaşımı

Merhaba.

Bir önceki yazımda fonksiyonalite ve basitleştirme yaklaşımı ile ilgili fikirlerimi paylaşmıştım. Okuyan arkadaşlarımdan olumlu yorumlar aldım, hepsine teşekkür ederek bir diğer konuyu paylaşmak istiyorum.

Yıllar önce ilk kişisel bilgisayarlarımızı aldığımızda Windows 95 kullanmaktaydık. Ve Windows 95 kurmak için disket kullanılmakta idi. Genç arkadaşlar muhtemelen inanamayacaklar ama her birisi sadece 1.44 MB kapasiteye sahip 40 (yazıyla kırk ! ) kadar disket kullanarak işletim sistemi yükleniyordu. Nostalji için Microsoft’un internet sitesinden Windows 95’in gereksinimlerini inceleyebilirsiniz.  Ayrıca Windows 95 nasıl birşeydi diye merak ediyorsanız şu resmi bir inceleyebilirsiniz:

Windows95

Şimdi sıkı durun; Windows 95’i kurmak için öncelike bilgisayarı başlatacak MS-DOS disketi oluşturmak, bu disketle bilgisayarı açmak (boot etmek), ilk Windows diskini takıp bu diskteki setup dosyasını bulmak, bulunan bu dosyayı çalıştırmak (run), sonraki adımlarda doğru sıra ile doğru disketleri takmak ve en sonunda da yine disketleri kullanarak tek tek driverları (ekran, anakart, eternet vb) yüklemek gerekiyordu. Tabi son işlem hariç tüm işlemler DOS ekranında (şu siyah ekran var ya, işte o) yapılyordu. Dolayısı ile Windows 95 kurmak sadece işletim sistemini kurmaktan çok daha fazlasını gerektiriyordu. Yani tam bir “bilgisayarcı çocuk” olmanız gerekmekte idi.

Bilgisayarcı çocuk (temsili resim)

Computer-Addict-copy

Konumuza dönersek; varsayalım ki Doğrudan Borçlandırma Sistemi  kullanan bir müşterimiz var. Bu firmanın muhasebe departmanında çalışan bir kullancımız, bir bankaya fatura talimatlarını yüklemek istiyor.

Not : Eğer Doğrudan Borçlandırma Sistemi (DBS) ya da Doğrudan Tahsilat Sistemi (DTS) kavramını daha önce duymadıysanız detaylı ilgili bilgi için DBS nedir yazıp arattırabilirsiniz.

Bu işlem için öncelikle sistemdeki DBS müşterilerin açık hareketlerini bulması, ilgili tarih itibarı ile yüklenmesi gereken faturaları tesbit etmesi, faturaları bankanın gönderdiği Excel belgesine doldurması, bu belgeden hareketle bir text dosyası oluşturması, sonra bu dosyayı bankanın FTP ya da SFTP adresine yüklemesi, gelen akıbet dosyasına göre de gönderdiği faturaları işaretleyerek kapatması gerekir. Yani her işi yapabilen tam bir joker karakter olması gerekir.

Joker karakter (Temsili resim)

HD20_DarkKnight_joker_large

Bu joker karakterin nerelerde hata yapabileceğini ya da, ve eğer art niyetli ise, neler yapabileceğini sadece hayal edin. Yanlış müşteri seçmekten, yanlış bankaya dosya yüklemeye, yanlış kişiye yanlış miktarda fatura yüklemeye kadar sonu gelmeyen seçenekler mevcut. Ayrıca bu işlemi yapabilmesi için vermeniz gereken yetkileri de bir düşünün. Şimdi çevrenizdeki kullanıcılara bir kere de bu gözle bakın. Kaç tane joker var?

Peki bu işi nasıl basitleştirebiliriz? Nasıl bir arayüz amaca uygun olur ve olası tüm hataları engeller? Normalde bu işlemin mümkünse tamamen arka planda toplu işle gerçekleşmesi gerekir ama, böyle olmadığını ya da istisnai durumları yönettiğimiz manuel tarafının olduğunu düşünelim.

Ben bu tip durumlarda aynen yeni sürüm Windows kurulumlarında olduğu gibi sihirbaz mantığını öneriyorum.

Yani ileri – ileri ile giderken, olası bir eksik varsa bir sonraki adıma geçilemeyecek, işlem her adımda kontrollü olarak gerçekleşecektir. Herhangi bir adımda vazgeçilirse hiçbir şey yapılmamış olacaktır. Ayrıca amaç dışında herhangibir işlem yapılamayacak, kullanıcı yanlış ya da eksik bir dosyayı ftp’ye yükleyemeyecektir. Alttaki örnek bir müşterimizdeki DBS (ya da DTS) sistemine manuel yüklemeyi yapan ekranları gösteriyor.

1. Adım : Bilgilendirme

DBS1

2. Adım : Müşteri seçimi. Sadece uygun müşteriler seçilebilir. Benzer bir ekran olan banka seçimini atladım.

DBS2

3. Adım : Fatura seçimi. Hiçbir fatura seçilmezse işlem yapılamaz.

DBS3

 

DBS4

5. Adım : İşlem tamam. Artık text dosyamız oluşturulup FTP’ye yüklenebilir.

DBS5

Hata yapma ihtimali ve amaca uygunluğu nasıl değerlendiriyorsunuz? Bence gayet başarılı.

Peki böyle bir sihirbazı nasıl oluşturabiliriz? Tabi ki sihirbaz sihirbazı ile 🙂 Evet Ax’ta sihirbaz sihirbaz adında bir sihirbaz mevcut. İngilizcesi de Wizard wizard.

wizard

Bu sihirbaz bize bir proje, proje içinde bir class, bir form ve bir menu item oluşturacaktır. Tabi bu kadar kompleks kontrolleri doğrudan yapması mümkün değil, ama bir ipucu; sonraki ve önceki tuşlarının aktif olabilmesi için oluşan classtaki setupNavigation metodunu düzenlemeniz gerekecektir.

Emre TÜFEKÇİ
İstanbul

www.atol.com.tr

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s