SQL Server trigger ile INSERT işlemini rollback edip kullanıcıya mesaj göstermek (LOGO Tiger ERP crash oluyor)

Cevapla
ozcanmetu
Mesajlar: 1
Kayıt: Prş Oca 29, 2026 11:07 pm
Meslek: Endüstri Mühendisi
Adınız: Özcan
Soyadınız: Ballıkaya

SQL Server trigger ile INSERT işlemini rollback edip kullanıcıya mesaj göstermek (LOGO Tiger ERP crash oluyor)

Mesaj gönderen ozcanmetu »

Merhaba,

LOGO Tiger ERP üzerinde SQL Server trigger kullanarak bir iş kuralı uygulamak istiyorum.

Senaryo şu:
Kullanıcı “Satış Siparişi → Faturala → F2 (Kaydet)” dediğinde, arka planda sırasıyla şu işlemler oluyor:

INVOICE tablosuna INSERT

STFICHE tablosuna INSERT

STLINE tablosuna INSERT (asıl satırlar burada oluşuyor)

Benim amacım:

Fatura kaydedilirken bazı koşullara bakıp, ihlal varsa işlemi rollback edip kullanıcıya uyarı mesajı göstermek.

Bunu tamamen SQL tarafında, yani LOGO Objects / SDK / uygulama kodu kullanmadan, sadece trigger ile yapmak istiyorum.

Durum

UPDATE trigger içinde RAISERROR / THROW kullandığımda:

LOGO ekranda mesajı düzgün gösteriyor

İşlem rollback oluyor

Program crash olmuyor → OK

INSERT trigger içinde aynı şeyi yaptığımda:

LOGO crash oluyor

OLE DB tarafında E_FAIL / Cursor Engine error geliyor

Uygulama kapanıyor

Özellikle:

“Satış siparişi → faturala” akışında STLINE üzerinde INSERT trigger tetiklenince crash oluyor.

Ama aynı kontrolü INVOICE AFTER UPDATE trigger’ında yaparsam bazen çalışıyor, bazen yine crash.
Örneğin

Kod: Tümünü seç

CREATE TRIGGER trg_test
ON STLINE
AFTER INSERT
AS
BEGIN
    IF EXISTS (SELECT 1 FROM inserted WHERE ...)
    BEGIN
        RAISERROR('Kural ihlali', 11, 1);
        -- veya THROW
    END
END

Bu yapı INSERT sırasında LOGO’yu patlatıyor.

Sorum

SQL Server tarafında:

INSERT trigger içinde işlemi durdurup kullanıcıya mesaj göstermek mümkün mü?
Bunu LOGO Objects kullanmadan, sadece SQL ile yapmanın bir yolu var mı? (Trigger veya farklı bir yöntem)

Asıl hedefim:

Kullanıcı F2 (Kaydet) dediği anda, ihlal varsa program patlamadan, temiz şekilde rollback + uyarı mesajı göstermek.
Kullanıcı avatarı
Tarkan VURAL
Doğrulandı
Site Admin
Mesajlar: 70
Kayıt: Prş Haz 22, 2023 12:03 am
Lokasyon: İstanbul
Web Sitesi: http://www.tarkanvural.com.tr
Meslek: Yazılım ve Veri Tabanı Uzmanı
Adınız: Tarkan
Soyadınız: VURAL
İletişim:

Re: SQL Server trigger ile INSERT işlemini rollback edip kullanıcıya mesaj göstermek (LOGO Tiger ERP crash oluyor)

Mesaj gönderen Tarkan VURAL »

Merhaba,
Trigger içerisinde Try Catch kullanarak rollback işlemi yapabilirsiniz.

Örnek:

Kod: Tümünü seç

BEGIN TRY        
   BEGIN TRANSACTION
      INSERT INTO _STOKMALIYET(STOKREF,MALIYET,TARIH,FIRMNR)
      SELECT PARLOGREF, MALIYET, CONVERT(VARCHAR(10), GETDATE(),104) ,400 FROM LG_XT201_400
   COMMIT TRAN
END TRY
BEGIN CATCH
	IF @@TRANCOUNT > 0
	ROLLBACK TRAN
END CATCH
Konu Dışı
Logo Yazılım, Özel Yazılım, Entegrasyon işlemleri, Excel VBA kodlama, Raporlama, Eğitim.. gibi konulardaki destek ihtiyaçlarınız içinhelpdesk@evnyazilim.com.trile irtibata geçebilirsiniz.
Cevapla
  • Benzer Konular
    Cevaplar
    Görüntüleme
    Son mesaj