Ana içeriğe geç Tamamlayıcı içeriğe geç

Constrain

Constrain deyimi, komut dosyası değişkenlerini tanımlamak için Let veya Set deyimleriyle birlikte kullanılabilir. Constrain deyimi, bu değişkenler için olası değerler üzerinde kısıtlamalar tanımlamanıza olanak tanır. Bir değişken tanımı kısıtlamaları ihlal ederse yeniden yükleme başarısız olur. Kısıtlamalarla, değişken değerlerinin belirli türlerle eşleşmesini, belirli sayısal aralıklara girmesini ve tanımladığınız kabul edilebilir değerlerle eşleşmesini zorunlu tutabilirsiniz.

Söz Dizimi:  

Constrain variablename = json

Burada:

  • variablename bir komut dosyası değişkenidir.

  • json kısıtlamaları belirten geçerli bir JSON nesnesidir. Bireysel kısıtlamalar bu nesnenin içine anahtar-değer çiftleri olarak eklenir.

Kısıtlama türleri
Kısıtlama türü (anahtar) Anlamı Kısıtlama gereksinimleri (değer) Örnekler
"type" Değişken değerlerini belirli bir veri türüyle sınırlayın.

"text" bir metin türü belirtir.

"number" sayısal bir tür belirtir.

CONSTRAIN vExampleText = {"type": "text"}
CONSTRAIN vExampleNumeric = {"type": "number"}
"maxnum" Bir değişken için maksimum değer ayarlayın. Yalnızca sayılar (tam sayı veya kayan nokta). Bilimsel gösterime izin verilir.
CONSTRAIN vExample = {"maxnum": 5000}
"minnum" Bir değişken için minimum değer ayarlayın. Yalnızca sayılar (tam sayı veya kayan nokta). Bilimsel gösterime izin verilir.
CONSTRAIN vExample = {"minnum": 250}
"valuesnum" Değişken için kabul edilebilir sayısal değerlerin bir listesini tanımlayın. Köşeli parantez içine alınmış sayıların virgülle ayrılmış listesi. Örneğin: [1,2,3]
CONSTRAIN vExample = {"valuesnum": [1,2,3]}
"valuestext" Değişken için kabul edilebilir metin değerlerinin bir listesini tanımlayın. Köşeli parantez içine alınmış dizelerin virgülle ayrılmış listesi. Örneğin: ["a","b","c"]
CONSTRAIN vExample = {"valuestext": ["Department A", "Department B", "Department C"]}

Constrain ifadesi ne zaman kullanılmalı?

İstenmeyen değişken değerlerinin analitik uygulamalarına yüklenmesini önlemek için Constrain deyimini kullanın. Aşağıdaki bölümlerde bunu kullanabileceğiniz belirli yollar özetlenmektedir.

Yeniden yükleme zamanı değişkeni güncellemesi

Constrain özellikle yeniden yükleme zamanı değişken güncellemeleri ile birlikte kullanıldığında yararlıdır. Yeniden yükleme zamanı değişken güncellemeleriyle, Yeniden Yüklemeler API'sindeki variables özelliğini kullanarak uygulama yeniden yüklemeleri sırasında değişkenleri dinamik olarak güncelleyebilirsiniz. Constrain deyimi, kötü niyetli veya yanlış biçimlendirilmiş değişken tanımlarının analiz yeniden yüklemelerine dahil edilmesini önler.

Yeniden yükleme zamanı değişken güncellemeleri, Constrain deyimi ile birlikte aşağıdaki kullanım durumlarını destekler:

  • Müşteri kimliği veya adı gibi koşullara göre verileri seçerek yükleyen şablonlu uygulamalar (yükleme sırasında değişken olarak aktarılabilir)

  • Birçok Qlik Cloud kiracısına dağıtılmış uygulamalar üzerinde merkezi kontrol

  • Değişken odaklı iş akışlarını ve görevleri QlikView ve Qlik Sense Client-Managed hedefinden buluta taşıma

Güvenlik, güvenilirlik ve işbirliği

Yeniden yükleme zamanı değişkeni güncelleme senaryoları dışında kullanıldığında bile Constrain, örneğin işbirliğine dayalı yükleme komut dosyası geliştirme sırasında yükleme komut dosyası yazımı için güvenlik kontrollerini geliştirir. Örneğin, bir uygulama sahibi değişken değerleri için kısıtlamalar tanımlayabilir ve uygulamanın güvenilir bir şekilde başarıyla yeniden yüklenmesi için karşılanması gereken belirli koşulları ortak çalışanlara bildirebilir.

Dikkat edilmesi gereken noktalar

  • Değişken için Constrain tanımı geçerli bir JSON nesnesi olmalıdır.

  • Tek bir değişken için birden fazla kısıtlama belirtebilirsiniz. Bir değişken için tüm kısıtlamaların tek bir kısıtlama nesnesi içinde yer alması gerekir. Örneğin bkz. Örnekler - Çoklu kısıtlamalar

  • Uygulamaya belirli bir ada sahip bir kod değişkeni yüklediyseniz gelecekte bu değişken için kısıtlamalar ve değerler tanımlama girişimleri, orijinal ve yeniden tanımlanan değişkenler arasındaki çakışmalar nedeniyle başarısız olabilir.

    Bu çakışmaları çözmek için boş tanımlar ekleyerek değişken kısıtlamalarını ve değerlerini sıfırlayın. Örnekler:

    CONSTRAIN x;
    LET x;
    
    CONSTRAIN x;
    SET x;

    Daha sonra değişkeni ve kısıtlamalarını kod dosyasının sonraki bölümlerinde yeniden tanımlayabilirsiniz. Uzun biçimli bir örnek için bkz. Örnek - Değişken tanımı çakışmalarını çözme.

  • Değişken tanımının ve kısıtlama tanımının sırası önemli değildir. Ancak değişkene bağlı yeniden yükleme hatası durumunda, kırılma noktasının oluştuğu çizgi farklı olacaktır.

  • Constrain komut dosyası deyimi yalnızca kod değişkenleri için değişken tanımlarını kısıtlar. Ayrıca genel API'yi kullanarak kod ve son kullanıcı değişkenlerine (sayfa görünümünde veya API kullanılarak oturum değişkenleri olarak oluşturulan ya da güncellenen) kısıtlamalar uygulayabilirsiniz. Daha fazla bilgi için bk. Değişken kısıtlamalarını tanımlamak için geliştirici alternatifleri.

Değişken kısıtlamalarını tanımlamak için geliştirici alternatifleri

Değişken kısıtlamalarını tanımlamak için kod dosyasında Constrain deyimini kullanmak yerine genel API'yi de kullanabilirsiniz. API aracılığıyla kısıtlamalar tanımlanırken, değişken değerlerini güncellemeye yönelik tüm girişimler (ister doğrudan komut dosyasında, ister sayfa görünümünde veya Yeniden Yüklemeler API'si aracılığıyla olsun) kısıtlamalara tabi olacaktır.

Değişken kısıtlamalarını genel API aracılığıyla tanımlamak için Qlik Sense Engine (qix) API'sindeki GenericVariableConstraints nesnesini kullanın: GenericVariableConstraints.

Örnek - type

Örnek - maxnum

Örnek - minnum

Örnek - valuesnum

Örnek - valuestext

Örnekler - SET ve LET

Bu örnekler, değişken tanımı sırasında SET veya LET kullanıldığında kısıtlamaların nasıl uygulandığı arasındaki farkları göstermektedir. Tüm örneklerde type gereksinimi uygulayan kısıtlamalar kullanılmaktadır, ancak bu ilkeler genel olarak tüm kısıtlama türleri için geçerlidir.

Örnekler - Çoklu kısıtlamalar

Örnek - Değişken tanımı çakışmalarını çözme

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız lütfen bize bildirin!