İsteğe bağlı şablon uygulamalarda bağlama ifadeleri
Bir şablon uygulamadaki veri bağlamaları, isteğe bağlı bir uygulamaya veri yüklenirken oluşturulan sorguları düzenlemek için karşılık gelen seçim uygulamasından hangi verilerin kullanılacağını belirtir.
Temel ifadeleri bağlama biçimi ($(odag_FIELDNAME)), ifadeleri bağlamanın tek yöntemi değildir. Seçimleri daraltmak veya şablon uygulamanın verileri doğru şekilde yüklemesini sağlamak için diğer önekler kullanılabilir.
Kullanılabilir bağlama önekleri
Genel önek biçimi odag[s|o][n][cnt] olup burada:
- s - yalnızca seçili değerleri dahil et
- o - yalnızca isteğe bağlı değerleri dahil et
- n - sayısal sürümü seç, varsayılan olarak tırnak içinde olmadan
- cnt - gerçek değerler yerine değer sayısını ekle
Aşağıdaki tabloda, kullanılabilir bağlama öneklerinin tüm sürümleri sağlanmaktadır. Örneklerde, seçili değerleri (yeşil değerler) 1,2,3 ve isteğe bağlı seçili değeri (beyaz değer) 4 olan MyField adlı bir alan olduğu varsayılmaktadır.
Önek | Açıklama | Örnek | Değiştirildiği öğe |
---|---|---|---|
odag_ | Seçili (yeşil) ve isteğe bağlı (beyaz) değerlerle değiştirilir. Değerlerin metin sürümünü seçer. Bu, dize değerleri için standart önektir. | $(odag_MyField) | '1','2','3','4' |
odagcnt_ | Karşılık gelen odag_ bağlamasındaki değer sayısıyla değiştirilir. Bu önek, sorguların optimizasyonu için kullanılır. | $(odagcnt_MyField) | 4 |
odagn_ |
Seçili (yeşil) ve isteğe bağlı (beyaz) değerlerle değiştirilir. Değerlerin sayısal sürümünü seçer. Bu, sayısal değerler için standart önektir. Bilgi notu
Veri modeli, alanın seçili veya isteğe bağlı bir değeri olamayacak şekildeyse ifadede noValue belirtilmelidir. Örneğin: $(odagn_MyField){"noValue":"-99999"}. Daha fazla bilgi için bk. Değer alıntı ve sınırlayıcı karakterlerini değiştirme. |
$(odagn_MyField) | 1,2,3,4 |
odagncnt_ | Karşılık gelen odagn_ bağlamasındaki değer sayısıyla değiştirilir. Bu, sorguların optimizasyonu içindir. | $(odagncnt_MyField) | 4 |
odago_ |
İsteğe bağlı (beyaz) değerlerle değiştirilir. Değerlerin metin sürümünü seçer. Bu, sorguların optimizasyonu içindir. Büyük veritabanı için optimizasyondeğişkenlerini silin. |
$(odago_MyField) | '4' |
odagocnt_ | Karşılık gelen odago_ bağlamasındaki değer sayısıyla değiştirilir. Bu, sorguların optimizasyonu içindir. | $(odagocnt_MyField) | 1 |
odagon_ |
İsteğe bağlı (beyaz) değerlerle değiştirilir. Değerlerin sayısal sürümünü seçer. Bu, sorguların optimizasyonu içindir. Büyük veritabanı için optimizasyondeğişkenlerini silin. |
$(odagon_MyField) | 4 |
odagoncnt_ | Karşılık gelen odagon_ bağlamasındaki değer sayısıyla değiştirilir. Bu, sorguların optimizasyonu içindir. | $(odagoncnt_MyField) | 1 |
odags_ |
Seçili (yeşil) değerlerle değiştirilir. Değerlerin metin sürümünü seçer. Bu, sorguların optimizasyonu içindir. Büyük veritabanı için optimizasyondeğişkenlerini silin. |
$(odags_MyField) | '1','2','3' |
odagscnt_ | Karşılık gelen odags_ bağlamasındaki değer sayısıyla değiştirilir. Bu, sorguların optimizasyonu içindir. | $(odagscnt_MyField) | 3 |
odagsn_ |
Seçili (yeşil) değerlerle değiştirilir. Değerlerin sayısal sürümünü seçer. Bu, sorguların optimizasyonu içindir. Büyük veritabanı için optimizasyondeğişkenlerini silin. |
$(odagsn_MyField) | 1,2,3 |
odagsncnt_ | Karşılık gelen odagsn_ bağlamasındaki değer sayısıyla değiştirilir. Bu, sorguların optimizasyonu içindir. | $(odagsncnt_MyField) | 3 |
Metin sürümlerinde boş değerler filtrelenir. Sayısal sürümlerde sayısal olmayan ve NaN değerleri filtrelenir.
Büyük veritabanı için optimizasyon
odags_ ve odagsn_ önekleri, sorguların optimizasyonu için tasarlanmıştır. Bağlı alanlarda bir seçim olmadığında odag_ tüm değerleri içerirken odags_ ise bir değer içermez. Bazı durumlarda, odags_ ve odagscnt_ öneklerini kullanmak daha verimlidir. Böylece değer kümesinin boş olup olmadığını test edebilirsiniz. Örneğin, MyField içinde bir seçim yapılmadığında, odag_MyField içinde tüm değerler için test yapılmasındansa aşağıdaki daha verimlidir:
İsteğe bağlı bir alanda bulunmayan seçim uygulamasından seçilecek alternatif bir alan olduğunda odags_ kullanılamaz. Örneğin, kullanıcı CountryName içinde seçim yaparsa ancak bağlama ifadesi, CountryCode adlı ilişkilendirilmiş alanda bulunuyorsa odags_ kullanılamaz. Bu durumda bunun yerine odago_ kullanılabilir. odago_ bağlamasında bir değer yoksa bu, tüm değerlerin dahil edileceği veya hiçbir değerin dahil edilmeyeceği anlamına gelebilir.
Sayısal değerleri bağlama
İsteğe bağlı uygulamaya bağlanan veriler, dizeler yerine sayılardan oluştuğunda sayısal alanlardaki alıntı sarmalama davranışını devre dışı bırakmak faydalı olabilir. Örneğin, satış kayıtları sayısal bir DAY_OF_WEEK sütunu içeriyorsa ve seçim uygulaması kullanıcısının DAY_OF_WEEK öğesinin rastgele birleşimlerini seçmesini istiyorsanız seçim uygulamasını yüklemek için kullanılan toplama sorgusunu, SELECT ve GROUP BY listelerinde DAY_OF_WEEK öğesini içerecek şekilde artırabilirsiniz. DAY_OF_WEEK değerleri seçildiğinde bu değerlerin tırnak işaretleriyle sarmalanırsa veritabanının dizeden sayısal değerlere otomatik tür dönüştürme işlemini desteklememesi durumunda çalışma zamanı sorgusu hatası oluşabilir.
Bu durumu ele almak için, bağlama ifadesi sonekinin sayısal sürümünü kullanabilirsiniz. Böylece alan bağlaması, seçim uygulamasından dize değerleri yerine sayısal değerlerin kullanılmasını zorlar. Aşağıdaki sayısal sürüm kullanılabilir:
- odagn_
- odagon_
- odagsn_
Sayısal sürümler kullanılarak, seçilen değerleri saklayan ikili değerlerin sayısal kısmından değerler seçilir ve varsayılan olarak değerler tırnak içine alınmaz.
Belirli sayıda seçimi gerekli kılma
Bazı durumlarda, isteğe bağlı uygulamanın belirli bir alan için belirli sayıda veya belirli bir aralık içindeki değerleri içermesini gerekli kılmak gerekebilir. Örneğin, isteğe bağlı uygulamanın sorgusu bir başlangıç ve bitiş tarihi arasındaki tüm satışları almaya yönelik BETWEEN cümlesini içeriyorsa YEARQUARTER alanının bağlama ifadesi, şurada belirtildiği gibi YEARQUARTER için tam olarak iki değerin seçilmesini gerekli kılan bir son ek söz dizimi [2] içerebilir.
Seçim uygulamasındaki isteğe bağlı uygulama navigasyon noktası, tam olarak iki YEARQUARTER değeri seçilmediği sürece devre dışı kalır. Tam olarak iki YEARQUARTER değerinin seçilmesi gerektiğini belirten bir mesaj görüntülenir.
Seçim miktarı kısıtlamaları, seçim uygulaması ile isteğe bağlı uygulama arasında önkoşul bağlantısı oluşturur. Bu, miktar kısıtlamaları kullanmayan bağlama ifadelerinden farklıdır. Örneğin, şablon uygulamanın kodunda şu durumdaki gibi, miktar kısıtlaması olmayan bir bağlama ifadesi varsa:
seçim uygulamasının MYFIELD adlı bir alan içermesi veya bu alan yoksa alanın seçili değerlerinin bulunması gibi bir gereklilik yoktur. Seçim uygulaması MYFIELD adlı bir alan içermiyorsa veya kullanıcı bu alandan seçim yapmayı ihmal ederse isteğe bağlı uygulama navigasyon noktası, kayıt sınırı değeri koşulunu yerine getirmek üzere diğer seçimler yapıldığında da etkinleştirilebilir.
Bununla birlikte bağlama ifadesi şu ise:
seçim uygulaması için artık iki gereklilik vardır:
- Seçim uygulaması MYFIELD adlı bir alan içermelidir.
- Kullanıcı MYFIELD için en az bir değer seçmelidir.
Bu tür bağlama ifadeleri, şablon uygulama ile kullanılabilecek seçim uygulamalarını sınırladığından dikkatli bir şekilde kullanılmalıdır. Bir şablon uygulamaya bağlanan tüm seçim uygulamalarında bu seçim miktarı gereksinimini uygulamak istediğinizden emin değilseniz şablon uygulamanın bağlamalarında bu miktar kısıtlamasını kullanmamalısınız.
İsteğe bağlı uygulama hizmeti, veri bağlama işlemini gerçekleştirmek için komut dosyasındaki açıklamalara duyarsız olan bir dize değiştirme yaklaşımı kullanır. Bu, uygulama oluşturulduktan sonra bağlı değerlerin listesini içermesini istemediğiniz açıklamalarda bağlama ifadeleri kullanmamanız gerektiği anlamına gelir. Yorumlardaki bağlamalar, İsteğe bağlı uygulama oluşturma bağlantısının alan listesinde de görünür ve bu istenmeyen bir durum olabilir.
Diğer miktar kısıtlamaları da olasıdır. Aşağıdaki tabloda seçim miktarı kısıtlamalarının farklı birleşimleri özetlenmektedir.
Kısıtlama düzeni | Seçim gerekliliği |
---|---|
$(odag_YEARQUARTER)[2] | YEARQUARTER öğesinin tam olarak 2 değeri seçilmelidir. |
$(odag_YEARQUARTER)[2-4] | YEARQUARTER öğesinin 2 - 4 değeri seçilmelidir. |
$(odag_YEARQUARTER)[2+] | YEARQUARTER öğesinin en az 2 değeri seçilmelidir. |
$(odag_YEARQUARTER)[2-] | YEARQUARTER öğesinin en fazla 2 değeri seçilebilir. |
Değer alıntı ve sınırlayıcı karakterlerini değiştirme
Seçim uygulamasında seçilen bir alana ait bir değerler listesi, şablon uygulamanın koduna eklendiğinde, değerler tek tırnak işareti içine alınır ve virgülle ayrılır. Alıntı ve sınırlayıcı için varsayılan karakterler bunlardır. Bu değerler, her alan için bağlama deyimine eklenen söz diziminde değiştirilebilir. Örneğin:
Ardından bu yeni değerler, seçim uygulamasından alınan bağlama değerleri listesi formüle edilirken kullanılır. Örneğin, seçili değerler yılın ilk üç ayı ise liste şöyle oluşturulur:
Alıntı ve sınırlayıcı karakterlerinin varsayılan değerleri, standart SQL veritabanlarının çoğu için çalışır. Ancak bu karakterler, bazı SQL veritabanlarında çalışmayabileceği gibi NoSQL ve REST dahil olmak üzere birçok dinamik veri kaynağında da çalışmaz. Söz konusu kaynaklar için, bu bağlama ifadesini ekleyerek alıntı ve sınırlayıcı karakterlerini değiştirmeniz gerekir.
Aşağıdaki tabloda, tırnak işareti ve sınırlayıcı karakterlerini değiştirmeye yönelik biçim parametresi açıklanmaktadır.
Parametre | Varsayılan değer | Tanım |
---|---|---|
quote |
Metin önekleri için ' (tek tırnak işareti) sayısal önekler için boş |
Her bir değerin önüne ve arkasına eklenir |
ayırıcı | , (virgül) | Tüm değerlerin arasına eklenir |
quoteReplace | '' (çift tırnak işareti) |
Değer boş olmadığında ve tırnak işareti kullanımı boş olmadığında, değerlerin içinde geçen tüm tırnak işaretleri, belirtilen dizeyle değiştirilir. Bilgi notuquoteReplace, odagn_ gibi sayısal önekler için parametre olarak desteklenmez. quoteReplace, sayısal önekler tarafından yoksayılır.
|
noValue | (boş) |
Bir alan için seçili bir değer olmadığında, yerine bu değer kullanılır. Seçimdeki belirli bir alan için değer olmadığında bu parametre kullanışlıdır. Değer, kaynak verilerde mevcut olmayan bir değere ayarlanmalıdır. Sayısal değerler söz konusu olduğunda, örneğin, veritabanındaki tüm değerler pozitifse negatif bir değer kullanın. Bilgi notu Tırnak içine alınmayan değerler için, alanın seçili değerleri boş bir küme olabiliyorsa noValue belirtilmelidir.
|
Aşağıdaki tablolarda, odag_ ve odagn_ için oluşturulan değerler ve biçim belirtimi açıklanmaktadır. Oluşturulan eklenen değerler, varsayılan VAL1, VAL2 veri değerlerine dayalıdır.
Biçim belirtimi | Açıklama | Oluşturulan eklenen değerler |
---|---|---|
belirtilmedi |
' içine alınmış şekilde, tüm değerlerin virgülle ayrılmış listesi. |
'VAL1','VAL2' |
{"quote": "", "delimiter": ""} | Birleştirilmiş değerler | VAL1VAL2 |
{"quote": "X", "delimiter": "Y"} |
X içine alınmış ve Y ile sınırlanmış değerler. | XVAL1XYXVAL2X |
{"quote": "XX", "delimiter": "YY"} | XX içine alınmış ve YY ile sınırlanmış değerler. | XXVAL1XXYYXXVAL2XX |
{"quote": "X"} | X içine alınmış ve , ile sınırlanmış değerler (varsayılan). | XVAL1X,XVAL2X |
{"delimiter": "YY"} | ' içine alınmış (varsayılan) ve YY ile sınırlanmış değerler | 'VAL1'YY'VAL2' |
{"quote": ""} | Tırnak içine alınmamış ve , ile sınırlanmış değerler. | VAL1,VAL2 |
{"quote": "A", "quoteReplace": "\\A"} |
A içine alınmış ve virgül ile sınırlanmış değerler (varsayılan). Alanın içindeki A değerleri, \A ile değiştirilecektir. Bilgi notu
Bu örnekte \, json biçiminde kaçış karakteri olduğundan çift \ olması gerekir. |
AV\AL1A,AV\AL2A |
Biçim belirtimi | Açıklama | Oluşturulan eklenen değerler |
---|---|---|
belirtilmedi |
Tırnak içine alınmamış değerlerin virgülle ayrılmış listesi. Sayısal değerlerin kullanılacağını unutmayın. |
VAL1,VAL2 |
{"delimiter": "YY"} | Tırnak içine alınmamış ve YY ile sınırlanmış değerler | VAL1YYVAL2 |
{"quote": "A", "quoteReplace": "\\A"} | odag_ önekine kıyasla quoteReplace parametresi yoksayılır. | AVAL1A,AVAL2A |
Tek tek değerleri işleme
Alan değerlerinin tek tek işlenmesi gerektiğinde, Values değişkeninde değerler oluşturmak için bir satır içi yöntemi kullanabilir ve Replace veya başka bir fonksiyonla rastgele işlem gerçekleştirebilirsiniz. Aşağıdaki örnekte, yer tutucu değerleriyle Replace kullanılır.