Ana Sayfa
EN

Çoklu liste ve tetikleyiciler

SQLite tabanlı liste yönetimi ve taranan değer eşleşince aktif listeyi değiştiren tetikleyiciler.

QCR Scanner, taradığınız değerleri tek bir yığın içinde değil, istediğiniz kadar ayrı liste içinde toplar. Her liste cihazınızdaki yerel bir SQLite veritabanında saklanır; oluşturabilir, yeniden adlandırabilir, silebilir ve aralarında geçiş yapabilirsiniz. Bir liste her zaman aktiftir ve yeni taranan her değer ona eklenir. Bu sayfa listeleri nasıl yöneteceğinizi, aktif liste kavramını ve taranan bir değer bir desene uyduğunda aktif listeyi otomatik değiştiren liste tetikleyici kurallarını anlatır.

Listeler neden işe yarar?

Her işiniz için ayrı bir liste tutmak, verilerinizi en baştan düzenli tutar. Örneğin bir gün boyunca farklı depolardan seri numarası toplarken her depo için bir liste, ya da bir etkinlikte her oturum için bir liste açabilirsiniz. Listeler birbirinden bağımsızdır: bir listedeki doğrulama, ayraç ve girdiler diğerini etkilemez. Hangi listenin aktif olduğunu üst çubuktan görür, listeler arasında tek dokunuşla geçersiniz.

Listeler aşağıdaki özelliklerle birlikte çalışır:

Liste yönetimi

Liste yönetimi dört temel işlemden oluşur; hepsi yerel SQLite veritabanı üzerinde anında çalışır.

İşlem Ne yapar
Oluştur Yeni, boş bir liste açar ve ona bir ad verir
Yeniden adlandır Var olan bir listenin adını değiştirir; içindeki girdiler korunur
Sil Bir listeyi ve içindeki tüm girdileri kalıcı olarak kaldırır
Aktif yap Seçili listeyi aktif liste yapar; sonraki taramalar buraya düşer

Not: Liste silme geri alınamaz — listeyle birlikte içindeki tüm girdiler de gider. Silmeden önce verilerinizi koruyacaksanız listeyi CSV’ye aktarın.

Aktif liste kavramı

Aynı anda yalnızca bir liste aktiftir. Tarama, sesle giriş veya Akıllı Çıkarım yoluyla üretilen her yeni değer, doğrulamadan geçtikten sonra aktif listeye eklenir. Aktif listeyi değiştirmek, yeni gelen değerlerin nereye gideceğini değiştirir; mevcut girdileri taşımaz. Aktif liste seçiminiz cihazda saklanır, böylece uygulamayı kapatıp açtığınızda kaldığınız yerden devam edersiniz.

Aktif listeyi iki şekilde değiştirebilirsiniz: liste yönetiminden elle seçerek ya da aşağıda anlatılan tetikleyici kurallarıyla otomatik olarak.

Liste tetikleyici kuralları

Liste tetikleyicileri, taradığınız değerin kendisine bakarak aktif listeyi otomatik değiştiren kurallardır. Bir tetikleyici kuralı bir desen (regex) ve bir hedef liste adı tanımlar. Taranan değer desene uyduğunda QCR, aktif listeyi o hedef listeye çevirir — siz elle hiçbir şey değiştirmeden.

Bu özellik, taradığınız değerlerin kendisinin hangi listeye ait olduğunu söylediği akışlarda çok güçlüdür. Örneğin bir kutu etiketindeki bölüm kodunu okuttuğunuzda uygulamanın doğru bölüm listesine geçmesini sağlayabilirsiniz; ardından kutudaki tek tek ürünleri taradığınızda hepsi doğru listeye düşer.

Hedef liste yoksa: oluşturma onayı

Bir tetikleyici, henüz var olmayan bir listeyi hedef alırsa QCR sizi sessizce başka bir yere göndermez. Bunun yerine hedef listeyi oluşturmak isteyip istemediğinizi sorar. Onaylarsanız liste oluşturulur ve aktif yapılır; reddederseniz aktif liste değişmez. Böylece yazım hatası içeren bir desenin yanlışlıkla bir sürü boş liste açması engellenir.

consumeMatch: tetikleyen değer kayda girsin mi?

Her tetikleyici kuralının consumeMatch adında bir seçeneği vardır ve tetikleyen değerin ne olacağını belirler:

  • consumeMatch kapalı — tetikleyici çalışır, aktif liste değişir ve tetikleyen değer de yeni aktif listeye normal bir girdi olarak eklenir.
  • consumeMatch açık — tetikleyici değeri “tüketir”: aktif liste değişir ama tetikleyen değerin kendisi listeye girmez. Bu, değer yalnızca bir geçiş anahtarı olduğunda (örneğin bir bölüm başlığı barkodu) işe yarar; başlığı veriyle karıştırmadan listeyi değiştirir.

İpucu: Tarayarak liste açan ama o etiketin kendisini veride istemediğiniz akışlarda consumeMatch seçeneğini açın. Hem listeyi değiştiren hem de bir girdi olan değerler için kapalı bırakın.

Şablonla liste adı çözme

Hedef liste adı sabit bir metin olmak zorunda değildir. Tetikleyen değerin parçalarını liste adına yerleştirmek için bir şablon kullanabilirsiniz; böylece tek bir tetikleyici kuralı, taranan değere göre farklı listelere yönlendirebilir. Örneğin bir tarih ya da bölüm kodu içeren değerlerde, o kodu doğrudan liste adının içine geçirip her kod için ayrı bir liste açabilirsiniz. Çözülen ad var olan bir listeyle eşleşirse o liste aktif olur; eşleşmezse yukarıdaki oluşturma onayı devreye girer.

CSV ve webhook ile ilişki

Listeler, verinin nereye toplandığını belirler; dışa aktarım da liste bazında çalışır. Aktif listenizi CSV olarak dışa aktarabilir ya da girdileri webhook ile bir uç noktaya gönderebilirsiniz. Webhook gövdesindeki listName alanı, girdinin hangi listeden geldiğini taşır; böylece sunucu tarafında listeleri birbirinden ayırabilirsiniz. Otomatik senkron açıkken her yeni girdi tek tek gönderilir; “Send all” ile bir listenin tüm girdileri toplu olarak yollanır.

Bir webhook gövdesinde liste adının nasıl göründüğüne dair bir örnek:

{
  "action": "add",
  "listName": "Depo-A",
  "item": {
    "value": "SN-00421",
    "isQR": false,
    "source": "ocr",
    "createdAt": "2026-06-21T10:15:00Z",
    "isSeparator": false
  },
  "timestamp": "2026-06-21T10:15:00Z"
}

Listeler ve tetikleyiciler birlikte, taradığınız değerlerin kendisinin verinizi doğru bölmelere yönlendirdiği eller serbest bir akış kurmanızı sağlar. ReviseTouch tarafından geliştirildi.

Sonraki adımlar

  • Doğrulama kuralları — değerler listeye girmeden önce hangi desenlerin kabul edildiğini ayarlayın
  • Ayraçlar — bir liste içinde tarih ya da başlık temelli genişletilebilir bölümler oluşturun
  • CSV dışa aktarma — bir listeyi paylaşılabilir bir CSV dosyasına aktarın
  • Webhook senkronu — liste girdilerini otomatik veya toplu olarak bir uç noktaya gönderin