Özel eylemler
Veritabanlarınızdaki kayıtları güncellemek için SQL yazın.
Özel bir eylem oluşturma
Bir eylem oluşturmak için Yerel sorgu düzenleme erişimine sahip bir grupta olmalısınız
Özel bir eylem oluşturmanın iki yolu vardır:
- + Yeni > Eylem'e tıklayın. Eyleminizi kaydettiğinizde, bu eylemi bir modelle ilişkilendirmeniz istenecektir. (NOT: + Yeni men üsünde Eylem seçeneği yalnızca Patrona'da bir model oluşturduysanız veya erişiminiz varsa görünecektir.)
- Model detay sayfası aracılığıyla: bir modelden, sağ üstteki bilgi butonuna tıklayın. Kenar çubuğunun sağ üst köşesinde, Model detayı > Eylemler > Yeni eylem'e tıklayın.
Eylem düzenleyicisinde, bir tablodaki sütunların yalnızca bir alt kümesini güncelleyen bir eylem yazmak gibi kendi kodunuzu yazarak bir eylem oluşturabilirsiniz. Örnek eylemler'e bakın.
Eylem değişkenleri için alan türleri
Bir eylemde ayarladığınız her {{ değişken }}
için alan türünü ayarlamanız gerekecektir.
Bu değişken alan türlerinin her biri farklı seçenekler sunar. Seçenekleri değiştirmek için dişli simgesine tıklayın.
Bir değişken gerekmiyorsa, kişiler alanı doldurmadığında Patrona'nın kullanması için isteğe bağlı olarak varsayılan bir değer belirtebilirsiniz. SQL kodunda, isteğe bağlı değişkenleri ve virgülleri köşeli parantez içine almayı unutmayın, örneğin {{'[[, sütun = {{ optional_variable }}]] '}}
.
Eylem formundaki tüm alanlar için yer tutucu metin ekleyebilirsiniz.
Metin
- Metin
- Uzun metin
- Açılır liste
- Satır içi seçim
Sayı
- Sayı
- Açılır liste
- Satır içi seçim
Tarih
- Tarih
- Tarih + Saat
Hem Açılır liste hem de Satır içi seçim için formda sunulacak seçenekler listesini belirtebilirsiniz, her seçenek kendi satırında olacak şekilde.
Görünüm
Eylem düzenleyici modülündeki görünüm sekmesi, değişkenin form öğesinin bir önizlemesini görüntüler. Aşağıdaki resimde, değişkenin dişli simgesine tıkladık ve değişkeni metin > açılır liste kullanacak şekilde ayarladık. Görünüm bölümü, form öğesinin nasıl görüneceğine dair bir önizleme sunar:
Eylem ayarları
Model detay sayfasından, eylemin yanındaki üç nokta menüsüne (...) tıklayın. Eylem düzenleyicisinde, eylem ayarlarını açmak için dişli simgesine tıklayın.
Herkese açık yap
Eylem formuna herkese açık olarak paylaşılabilir bir bağlantı oluşturur. Bu bağlantıya erişimi olan herkes formu doldurabilir ve eylemi çalıştırabilir. Anketler oluşturmak için kullanışlıdır.
Başarı mesajı ayarla
Burada, Patrona'nın veritabanından her şeyin sorunsuz gittiğine dair geri bildirim aldıktan sonra açılan tostta görüntüleyeceği başarı mesajını düzenleyebilirsiniz.
Bir şeyler ters giderse, Patrona veritabanından aldığı hata mesajını görüntüler.
Örnek özel eylemler
Örnek UPDATE
eylemi
Örnek Veritabanındaki invoices
tablosundaki bir kaydın plan
sütununu güncelleyen bir eylem yazabilirsiniz:
{{'
UPDATE invoices
SET plan = {{ plan }}
[[, payment = {{ payment }}]]
WHERE
id = {{ id }}
'}}
Yukarıdaki kod, kişilerden belirli bir kayıt için (gerekli) plan
alanı ve isteğe bağlı olarak payment
alanı için güncellenmiş değerler girmelerini isteyen bir form oluşturur.
Köşeli parantez içindeki kod [[ ]]
ifadeyi isteğe bağlı hale getirir: köşeli parantez içindeki ifade yalnızca birisi ödeme alanına bir değer girerse çalışır. İfadeleri ayıran virgülün köşeli parantezlerin içinde olduğuna dikkat edin.
Örnek INSERT
eylemi
Ekleme ifadeleri oldukça basittir:
{{'
INSERT INTO invoices (
account_id
,payment
,expected_invoice
,plan
,date_received
)
VALUES (
{{ account_id }}
,{{ payment }}
,CAST ({{expected_invoice}} AS boolean)
,{{plan}}
,({{date_received}}
);
'}}
Eylemlerde alan değerlerini dönüştürme
Bir form gönderdiğinizde bir tür hatası alırsanız, sorgudaki veri türünü veritabanındaki hedef alanın veri türüyle eşleşecek şekilde CAST
etmeniz gerekebilir. Burada bir değeri boolean
olarak dönüştürüyoruz:
{{'
UPDATE invoices
SET expected_invoice = CAST({{expected_invoice}} AS boolean)
WHERE id = {{id}};
'}}
Eylemlerde kaydedilmiş soruları referans alma
Eylemlerde kaydedilmiş soruları da referans alabilirsiniz. Burada, bir kaydedilmiş soruya ("Potansiyel müşteriler") ilişkin bir SELECT
ifadesinin sonuçlarını alıyor ve sonuçları people_to_write
tablosuna ekliyoruz.
{{'
WITH prospects AS {{#6-potential-customers}}
INSERT INTO
people_to_write (
first_name
,last_name
,email
)
SELECT
first_name
,last_name
,email
FROM prospects;
'}}