Canias ERP Eğitimleri

Canias ERP Troia 29 Personel Yönetim Sistemi 11 Update İşlemi

Merhaba, Personel Yönetim Sistemini geliştirmeye kaldığımız yerden devam ediyoruz. Bu yazımda Update yani veri güncelleme olayına bakacağız.

Case: Verilerimizi listeledikten sonra bir veriyi seçip CHANGE ile detaya gidip istediğimiz alanı güncelleyip kaydedeceğiz.

MODI=1;

MSG='Değiştirilecek Veri Seçmediniz';

IF PERSONELBILGISI_SELECTED == 1 THEN
 CALL DIALOG EDUPERSON02;
ELSE
 MESSAGE EDU I302 WITH MSG;
ENDIF;

Detay Dialog’unda SAVE butonuna şu kodları yazıyoruz.

BEGINTRAN;

SWITCH MODI 
CASE MODI=1:
 UPDATE PERSONELBILGISI
  WHERE PERSONELN0 = PERSONELBILGISI_PERSONELNO 
   AND PHONENUMBER = PERSONELBILGISI_PHONENUMBER 
   AND MAIL = PERSONELBILGISI_MAIL;

ENDSWITCH;


IF SYS_STATUS == 1 THEN
 ROLLBACKTRAN;
 
ELSE
 COMMITTRAN;
ENDIF;

Burada 3 tane konumuz var üzerinde durmamız gereken.

BEGINTRAN – ROLLBACKTRAN – COMMITTRAN

Bu yapı veri işlemleri yaparken çok önemli bir konumdadır.

Bir Update, Insert, Delete işlemi yapılırken kullanılan bu yapı herhangi bir yanlışlık olması durumunda bu yanlışlığın veri tabanına yansımasına izin vermez.

Bir sorgu işlemi başlamadan önce

BEGINTRAN;

ile başlanır. Daha sonra Update, Delete, Insert komutları yazılır.

UPDATE PERSONELBILGISI
  WHERE PERSONELN0 = PERSONELBILGISI_PERSONELNO 
   AND PHONENUMBER = PERSONELBILGISI_PHONENUMBER 
   AND MAIL = PERSONELBILGISI_MAIL;

SYS_STATUS System Flag

IAS’da öğrenmemiz gereken bir System Action’ı SYS_STATUS’dür.

Bir sorgu işlemi eğer başarılı olursa SYS_STATUS değeri 0 döner.

Sorguda bir hata olursa SYS_STATUS değeri 1 döner.

IF ile SYS_STATUS durumunu kontrol edeceğiz.

Değer 1 dönerse ROLLBACKTRAN yaptırarak tüm işlemler veri tabanına işlenmeden geri alacağız.

Değer 0 dönerse COMMITRAN yaparak tüm değişikliğin ana veri tabanı üzerine işlenmesini sağlarız.

UPDATE ederken dikkat etmemiz gereken duruma gelirsek.

Yazmamız gereken sorgu kodu normal SQL kodlarından daha sade ve yalındır.

Sadece UPDATE denir, daha sonra ana tablomuzu listelediğimiz Grid ismi yazılır ve hangi şarta göre güncellenecekse WHERE ile şart yazılıp işlem tamamlanır.

EditBox’ların isimleri Grid kolonları ile eşlendiği için direk hepsini otomatik olarak değişiklikleri yapıp sisteme kaydedecektir.

Öncelikle ilk değişiklikler Grid üzerine yansır. COMMITRAN işlemine ulaşılabilirse de Grid üzerindeki veriler ana tablomuz üzerine Update edilmiş olur.

Görelim ekranlarımızı.

Seçtiğimiz kişinin Departman bilgisini Satış Pazarlama olarak güncelleyeceğiz.

Gördüğümüz gibi başarılı bir şekilde güncelleme işlemi gerçekleşti.

Programımızı biraz daha kullanıcı dostu hale getirelim.

Eğer başarılı bir işlem olmaz ise Güncelleme Gerçekleşmedi mesajını verelim.

Tablomuzda KEY alanlarımız vardı. O alanların EditBox’larının Enable değerini false yapalım. Çünkü o değerleri değiştirmemesi gerek kullanıcının.

IF MODI == 2 THEN
 SET SAVE TO DISABLE;
 SET GROUPBOX2 TO DISABLE;
ELSE
 SET SAVE TO ENABLE;
 SET GROUPBOX2 TO ENABLE;
ENDIF;


IF MODI == 0 
  && COPYR == 0 THEN
 PERSONELBILGISI_PERSONELNO='';
 PERSONELBILGISI_PERSONELNAME='';
 PERSONELBILGISI_PERSONELLASTNAME='';
 PERSONELBILGISI_BIRTHDATE=SYS_CURRENTDATE;
 PERSONELBILGISI_PHONENUMBER='';
 PERSONELBILGISI_DEPARTMENT='';
 PERSONELBILGISI_MAIL='';
 PERSONELBILGISI_STARTDATE=SYS_CURRENTDATE;
 PERSONELBILGISI_ADRESS='';
ENDIF;


IF MODI == 1 THEN
 SET PERSONELBILGISI_PERSONELNO TO DISABLE;
 SET PERSONELBILGISI_PHONENUMBER TO DISABLE;
 SET PERSONELBILGISI_MAIL TO DISABLE;
ELSE
 SET PERSONELBILGISI_PERSONELNO TO ENABLE;
 SET PERSONELBILGISI_PHONENUMBER TO ENABLE;
 SET PERSONELBILGISI_MAIL TO ENABLE;
ENDIF;

SAVE

BEGINTRAN;

IF MODI == 1 THEN
 
 UPDATE PERSONELBILGISI
  WHERE PERSONELNO = PERSONELBILGISI_PERSONELNO 
   AND PHONENUMBER = PERSONELBILGISI_PHONENUMBER 
   AND MAIL = PERSONELBILGISI_MAIL;
ENDIF;



IF SYS_STATUS == 1 THEN
 ROLLBACKTRAN;
 RETURN;
ENDIF;

COMMITTRAN;
MSG='Güncelleme İşlemi Gerçekleşti';
MESSAGE EDU I302 WITH MSG;

SHUTDOWN;

Sonuçlarımızı Görelim

Böylelikle başarılı bir şekilde UPDATE işleminide gerçekleştirmiş olduk.

Bir sonraki yazımda görüşmek üzere.

Murat Bilginer

21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.

Share
Published by
Murat Bilginer

Recent Posts

Kedimiz Oly & FIP Süreci 9 – 1 Haftalık GS İğnesi Serüveni – Oly İyileşiyor mu?

Selamlar, bu yazımda Oly'nin 1 hafta boyunca olduğu GS iğnesi, yaşanan değişimleri anlatmaya çalışacağım. PCR…

2 gün ago

Kedimiz Oly & FIP Süreci 8 – Yeniden Hayvan Hastanesi – Sonuç Kontrolü ve Sonrası…

Selamlar, bu yazımda Hemogram ve Biyokimya sonuçlarımızı göstermek için İÜCHH'ne tekrar gidişimizi ve sonrasını anlatacağım.…

2 gün ago

Kedimiz Oly & FIP Süreci 7 – GS İğnesine Başlama Kararımız ve Oly’de Dikkat Ettiklerimiz

Selamlar, bu yazımda GS iğnesine başlama kararımızı ve Oly’de bu süreçte nelere dikkat ediyor, neler…

2 gün ago

Kedimiz Oly & FIP Süreci 6 – İstanbul Üniversitesi Cerrahpaşa Hayvan Hastanesi Serüveni ve Sonrası

Selamlar, bu yazımda İÜCHH'deki tedavi sürecimiz ve sonrasında yaşananlardan bahsetmeye çalışacağım. 20.06.2025 Cuma günü saat…

4 gün ago

Kedimiz Oly & FIP Süreci 5 – Teşhisten Önce Biz… Veterinerimize Güvenebilir Miydik?

Eve Dönüş ve İlk Şüpheler 18 Haziran Perşembe saat 23 sularında İstanbul’daki evimize giriş yaptık.…

4 gün ago

Kedimiz Oly & FIP Süreci 4 – Antalya’ya Yolculuk – Bir Şeyler Ters Gidiyor… & İstanbul’a Geri Dönüş

9 Haziran Pazartesi günü Aydın’daki sürecimiz bitti ve Antalya yolculuğumuz başladı. Saat 11 gibi yola…

4 gün ago