Execute Script¶
Belirli bir form üzerinde özel script kodu çalıştırır. Panel tarafında script motorunu tetikleyerek karmaşık UI manipülasyonlarını gerçekleştirir.
Property Tablosu¶
| Alan | Tip | Varsayılan | Açıklama |
|---|---|---|---|
name |
string | — | Canvas üzerinde gösterilecek ad |
formname |
string | (boş) | Script'i çalıştıracak form |
script |
string | (boş) | Script kodu |
Dinamik Script (msg.script)¶
Eğer akış içinde msg.script değişkeni set edilmişse, node bu değeri statik script alanı yerine kullanır:
let script = msg.script;
if (script === undefined || script === null) {
script = node.script; // fallback
}
Bu sayede script içeriği akış içinde dinamik olarak üretilebilir.
Çıkış Mesajı¶
{
"operationtype": "ExecuteScript",
"receiveddata": { /* event data */ },
"name": "OrderForm",
"message": "if(value > 100) { btnAlert.Visible = true; }"
}
Tipik Akış¶
flowchart LR
A[Business Events] --> B[function<br/>Script üret]
B --> C[Execute Script<br/>OrderForm]
C --> D[Responser]
style A fill:#ccffcc,color:#000
style C fill:#ccffcc,color:#000
style D fill:#ccffcc,color:#000
Örnek Script'ler¶
Koşullu Görünürlük¶
if (txtQty.Text != "" && int.Parse(txtQty.Text) > 100) {
lblWarning.Visible = true;
lblWarning.Text = "Yüksek miktar uyarısı!";
} else {
lblWarning.Visible = false;
}
Toplam Hesaplama¶
decimal toplam = decimal.Parse(txtBirimFiyat.Text) * decimal.Parse(txtAdet.Text);
txtToplam.Text = toplam.ToString("N2");
Renk Değiştirme¶
if (cmbStatus.SelectedItem.ToString() == "Acil") {
pnlMain.BackColor = Color.Red;
} else {
pnlMain.BackColor = Color.White;
}
Önemli Notlar¶
Script dili paneldedir
Bu node script içeriğine dokunmaz; sadece panele iletir. Script dili (genellikle C# veya VB.NET) ve sentaks panel'in script motoruna bağlıdır.
Form aktif olmalı
Script'in çalışacağı form panel üzerinde açık olmalıdır. Aksi takdirde panel script'i çalıştıramaz.
Güvenlik
Script içeriğini kullanıcı girdisinden oluşturuyorsanız (örn. form alanından) enjeksiyon riski vardır. Mutlaka sanitize edin.
Sık Karşılaşılan Hatalar¶
Script çalışmıyor
formnamedoğru mu girildi?- Hedef form gerçekten açık mı?
- Script sentaks hatası içeriyor olabilir — panel logunu kontrol edin.
msg.script ile script alanı çelişiyor
Her ikisi de doluysa msg.script öncelik kazanır. Statik alan değişmiyor görünebilir.
İpuçları¶
Script şablonu
Karmaşık script'leri akış içinde function node ile parametre değerlerine göre dinamik üretin:
Birden fazla satır
Script çok satırlı olabilir; node düz string olarak gönderir. Panel tarafı satır sonlarını da işler.
İlgili¶
- Custom Form
- Control Properties — Property atama için tercih edin
- Method Invoker — Karmaşık iş mantığı için