Ana SayfaRestoran OtomasyonuMasaüstü OtomasyonSambaPOS Restoran Otomasyonunda Paket Servis Müşteri Adresine Tıklayınca Program Kilitleniyor SQL Tamir...

SambaPOS Restoran Otomasyonunda Paket Servis Müşteri Adresine Tıklayınca Program Kilitleniyor SQL Tamir Rehberi

Author

Date

Category

Soru: SambaPOS ta Paket Servis Siparişi Alırken Müşteri Adresine Tıklanınca Program Neden Yanıt Vermiyor Hatası Verir?

Cevap: Paket servis yapan restoranlarda, pide ve lahmacun salonlarında veya tüp/su bayilerinde telefon çalıp müşteri seçildikten sonra müşterinin kayıtlı açık adresine tıklandığı anda veya adrese yeni bir daire/sokak bilgisi yazılırken SambaPOS ekranının birdenbire donması, fare imlecinin dönmesi, program başlığında ‘(Yanıt Vermiyor)’ yazması ve 1-2 dakika sonra programın tamamen kapanması telefon hattındaki müşteriyi kaybettiren ağır bir yazılım kilitlenmesidir. Kasiyer adresi yazamaz ve siparişi sisteme giremez. Bu arıza bilgisayarın yavaşlığı değil; SambaPOS veritabanında müşteri adreslerinin ve telefon numaralarının tutulduğu Varlık Özel Alanları (Entity Custom Data) tablosundaki XML veri yapısının bozulması veya adrese girilen tırnak/kesme karakterlerinin SQL sorgusunu kırmasıdır.

Müşteri Adres Alanında SQL Sorgusunu Kilitleyen Hatalar

SambaPOS ta müşteri kartı bilgileri ilişkisel tablolarda dinamik JSON/XML yapısıyla saklanır:

  • SQL Enjeksiyon Kırılması (Karakter Hatası): Kasiyer müşteri adresine veya adına tek tırnak ('), çift tırnak (") veya ters slash () yazdığında (Örn: Ahmet’in Evi, 4. Cad. No:5/A "Köşedeki Bina"); SambaPOS un arka planda çalıştırdığı dinamik SQL sorgusu bu tırnak işaretini sorgunun bitişi zanneder. SQL Server sözdizimi hatası (Syntax Error) verir ve kilitlenir.
  • Adres Arama Önbelleğinin (Search Cache) Şişmesi: Veritabanında 20.000 den fazla müşteri adresi biriktiğinde, her harfe basıldığında tüm adreslerin taranması RAM belleğini tüketir.
  • Bozulmuş Varlık Veri Formatı (Corrupt JSON String): Adres alanına kopyala-yapıştır ile görünmeyen Unicode kontrol karakterlerinin yapıştırılması.

1. Adım: Hata Veren Bozuk Adres Kaydının SQL den Temizlenmesi

Kilitlenmeye sebep olan bozuk adres karakteri SQL Server Management Studio (SSMS) üzerinden bulunur:

  1. SSMS konsolu açılarak SambaPOS veritabanına bağlanılır.
  2. Son eklenen veya güncellenen müşteri kayıtlarındaki geçersiz karakterler taranır:
USE [SAMBAPOS5];
GO
-- Son güncellenen müşteri varlıklarını ve adres verilerini listeleyin:
SELECT TOP 20 Id, Name, CustomData FROM Entities 
WHERE EntityTypeId = (SELECT Id FROM EntityTypes WHERE Name = 'Müşteriler')
ORDER BY Id DESC;
GO

CustomData kolonunda XML/JSON yapısı bozulmuş, içinde kontrolsüz tırnak veya tuhaf karakterler olan satır tespit edilir ve adresi güvenli bir metinle güncellenir:

UPDATE Entities 
SET CustomData = REPLACE(CustomData, '''', ' ')
WHERE Id = 4580; -- Hata veren müşterinin Id si
GO

2. Adım: SambaPOS Arayüzünden Adres Alanı ‘Metin Formatı’ Doğrulaması

SambaPOS içinde varlık özel alan tipi kontrol edilir:

Varlık Yapılandırma Adımları:
1. SambaPOS > Yönetim > Varlıklar > Varlık Tipleri > 'Müşteriler' açılır.
2. Özel Alanlar (Custom Fields) sekmesine geçilir.
3. 'Adres' alanı açılır: Alan Tipi 'String / Metin' olmalıdır.
4. 'Geniş Metin' (Multi-line) seçeneğinin aktif olduğu doğrulanır.

3. Adım: Müşteri Listesi İndekslerinin Yenilenmesi

On binlerce müşterinin anında aranabilmesi için indeksler onarılır:

USE [SAMBAPOS5];
GO
ALTER INDEX ALL ON Entities REBUILD;
ALTER INDEX ALL ON EntityCustomData REBUILD;
GO

İndeksler yenilendikten sonra SambaPOS yeniden başlatılır; müşteri adresine tıklandığı anda donma yaşanmadan adres penceresinin milisaniyede açıldığı ve siparişin kaydedildiği doğrulanır.

Restoran paket servis çağrı merkezi altyapıları, SambaPOS müşteri veri tabanı optimizasyonu, Caller ID entegrasyonu ve SQL onarım hizmetlerinde BaykalSoft Perakende Bilişim ekibimizle iletişime geçebilirsiniz.

Önceki Gönderiler

Önceki Yorumlar