Veri Şablonları¶
Emakin'deki veri şablonları, veri modellerini metin veya HTML gibi çeşitli çıktı biçimlerine dönüştürür. Bu şablonlar, form denetimleri ve e-posta şablonları dahil olmak üzere farklı Emakin bileşenlerinde kullanılır. Şablonlarda çift küme ayraçları içine yerleştirilmiş XPath sorguları kullanılır {{ ve }}.
Örneğin, veri modelinde "username" adlı bir alan varsa temel bir şablon şöyle olur:
1 | |
"username" alanı "Madonna" içeriyorsa oluşturulan çıktı şöyle olur:
1 | |
Tüm XML değerleri doğası gereği dizeler olarak ele alınır; bu nedenle otomatik veri türü biçimlendirmesi yapılmaz. Sayıları veya tarihleri biçimlendirmek için açık tür dönüştürme ya da biçimlendirme işlevleri gerekir.
Kültür Desteği¶
Veri şablonları kültüre duyarlıdır ve biçimlendirmeyi belirtilen kültüre göre uyarlar. Kültür genellikle kullanıcı tercihlerinden alınır ancak açıkça da ayarlanabilir. Kültür belirtilmezse değişmez kültür kullanılır.
Betiklerde Kültür Belirtme¶
Aşağıdaki JavaScript örneği, belirli bir kültür ('tr-TR' - Türkçe) kullanılarak biçimlendirme yapılmasını gösterir:
1 2 3 4 5 | |
Veri Türü Biçimlendirme¶
Metin Biçimlendirme¶
Metin veya dize değerleri örtük bir biçimlendirme uygulanmadan oluşturulur.
Sayı Biçimlendirme¶
"Sum" ve "Count" gibi işlevler sayıları doğrudan döndürürken, açık tür dönüştürme gerektiğinde number() işlevi kullanılabilir. Sayı değerleri varsayılan olarak ondalık kurallara göre biçimlendirilir.
Örnekler:
| Şablon | Çıktılar | Kültür |
|---|---|---|
| {{ 12345678912345 }} | 12345678912345 | |
| {{ 123456.78912345 }} | 123456.78912345 | |
| {{ number(123456.78912345678912345) }} | 123456.789123457 | |
| {{ format( number(123456.789) ) }} | 123456.789 | |
| {{ format( number(123456789) ) }} | 123456789 | |
| {{ format( number(123456789), 'n') }} | 123,456,789.00 | |
| {{ format( number(123456789), 'n') }} | 123.456.789,00 | tr-TR |
| {{ format( number(123456789), 'n0') }} | 123,456,789 | |
| {{ format(number(123456789), 'c') }} | 123.456.789,00 ₺ | tr-TR |
Tarih Biçimlendirme¶
Şablon sistemi, "YYYY-MM-DDTHH:MM:SSTZ" biçiminde biçimlendirilmiş XML tarih türlerini otomatik olarak tanır. Emakin, veri modelindeki tarih değerleri için bu biçimi tutarlı olarak kullanır. Diğer biçimlerdeki tarihler dize olarak ele alınır.
Örnekler ( MyDate 'in içerdiği varsayıldığında: 2014-01-31T09:00:00+02:00):
| Şablon | Çıktılar | Kültür |
|---|---|---|
| {{ MyDate }} | 01/31/2014 16:04:12 +02:00 | |
| {{ format(MyDate,'dd/MM/yyyy') }} | 31/01/2014 | |
| {{ format(MyDate) }} | 31.1.2014 09:00 | tr-TR |
| {{ format(MyDate,'d') }} | 31/01/2014 | |
| {{ format(MyDate,'D') }} | 15 Haziran 2009 Pazartesi | en-US |
| {{ format(MyDate,'o') }} | <br>2014-01-31T09:00:00+02:00<br> |
Betik örneği¶
1 2 3 4 | |
Betik örneği¶
Tarih düğümünden saati kaldırmanın bir yolu:
1 2 3 4 | |
format() İşlev Seçenekleri¶
İlgili format() işlevi, çıktıyı özelleştirmek için çeşitli seçenekler sunar. Ayrıntılar için aşağıdaki tabloya bakın. Kullanılabilir seçeneklerin ve davranışlarının veri türüne göre değişebileceğini unutmayın.
| Veri Türü | Biçim Seçeneği | Açıklama | Örnek Veri | Çıktı |
|---|---|---|---|---|
| Dize | Dizeyi otomatik algılamayla yazdır | <script>alert('hello')</script><div>hello</div> | <div>hello</div> | |
| Dize | Dizeyi otomatik algılamayla yazdır | 12.345 | 12.3 | |
| Dize | Dizeyi otomatik algılamayla yazdır | 12 | 12 | |
| Dize | Dizeyi otomatik algılamayla yazdır | 2022-05-07T00:00:00+03:00 | 07.05.2022 00:00 | |
| Dize | Dizeyi otomatik algılamayla yazdır | Doğru / true | ✓ (U+2713) | |
| Dize | Dizeyi otomatik algılamayla yazdır | Yanlış / false | ✕ (U+2715) | |
| Dize | html | Dizeyi kodlanmış HTML metni olarak yazdır | <script>alert('hello')</script><div>hello</div> | <script>alert('hello')</script><div>hello</div> |
| Dize | safe | Tehlikeli etiketleri çıkararak değeri güvenli HTML olarak yazdır | <script>alert('hello')</script><div>hello</div> | <div>hello</div> |
| Dize | dize | Dizeyi herhangi bir kodlama uygulamadan yazdır | <script>alert('hello')</script><div>hello</div> | <script>alert('hello')</script><div>hello</div> |
| Sayı | n0 | Sayıyı ondalık basamak olmadan tam sayı olarak yazdır | 12.345 | 12 |
| Sayı | n1 | Sayıyı noktadan sonra 1 basamak olacak şekilde ondalık olarak yazdırır | 12.345 | 12.3 |
| Boole | Değeri Unicode onay işareti olarak yazdırır | Doğru / true | ✓ (U+2713) | |
| Boole | Değeri Unicode onay işareti olarak yazdırır | Yanlış / false | ✕ (U+2715) | |
| DateTime | Tarih değerini kullanıcının yerel ayar tercihine göre yazdırır | 2022-05-07T00:00:00+03:00 | 07.05.2022 00:00 | |
| DateTime | o | Tarihi ISO biçiminde yazdırır | 2022-05-07T00:00:00+03:00 | 2022-05-07T00:00:00+03:00 |
| DateTime | m | Tarihi dinamik biçimde biçimlendirerek yazdırır | 2022-05-07T00:00:00+03:00 | 2 gün önce |
| DateTime | dd/MM/yyyy | Tarihi belirtilen tarih biçiminde yazdırır | 2022-05-07T00:00:00+03:00 | 07/05/2022 |
Koşullu Biçimlendirme¶
Koşullu işleme aşağıdaki söz dizimi kullanılarak gerçekleştirilir:
1 2 | |
Örnek:
Temel kullanım
1 | |
else yan tümcesiyle temel kullanım
1 | |
Yinelenen Şablonlar¶
Bir şablonu birden çok düğüme uygulamak için şu söz dizimini kullanın:
1 | |
Bu işlem, eşleşen her öğe üzerinde yinelenir ItemXPath ve şablonu uygular.
Örnek:
1 2 3 4 5 6 7 8 9 10 | |
Aşağıdaki çıktıyı oluşturur:
1 2 3 4 5 6 7 8 9 10 11 12 | |
Öznitelikle Yineleme¶
Öznitelik x-repeat şablonları yinelemek için kullanılan => söz dizimine alternatif sunar. Özellikle, söz diziminin etiketlerin bozulmasına yol açabileceği HTML oluşturma işlemlerinde kullanışlıdır. Örneğin: =>
1 2 3 4 5 6 7 | |
Bu öznitelik herhangi bir öğeyle kullanılabilir. Örneğin, "li" etiketiyle de kullanılabilir.
1 2 3 4 5 6 | |
Özyinelemeli Yineleme Şablonları¶
Özyinelemeli yineleme için şu söz dizimini kullanın:
1 | |
Şablon, her yinelemenin sonuçlarına özyinelemeli olarak uygulanır.
Örnek:
1 2 3 4 5 | |
sonuç:
1 2 3 4 5 | |
Şablon Değişkenleri¶
Şablonlarda hem özel süreç değişkenleri hem de sistem özellikleri kullanılabilir. İstemci tarafı ve sunucu tarafı betiklerinin değişken bağlamları farklıdır.
İstemci Tarafı Şablon Değişkenleri¶
İstemci tarafı betiklerde (ör. form betiklerinde) kullanılabilir:
| Değişken Adı | Açıklama |
|---|---|
$staticUrl | Statik kaynaklar için temel URL. Statik kaynakların temel adresi. (ör.: https://static.emakin.com/ ) |
$applicationUrl | Uygulamanın temel URL'si. (ör.: https://mydomain.emakin.com/app/ ) |
$Process | Geçerli sürecin benzersiz kimliği |
$FolderName | Süreci içeren dizinin adı |
$CustomVariable | Süreç içinde tanımlanan özel değişkenler |
Sunucu Tarafı Şablon Değişkenleri¶
Sunucu tarafı betiklerde (ör., pre/post-work betiklerinde) kullanılabilir:
| Değişken Adı | Açıklama |
|---|---|
$ApplicationName | Bir uygulamanın adı. (ör. emakin.com ) |
$ApplicationUrl | Uygulamanın temel URL'si |
$Domain.Name | Alanadının adı |
$Domain.Url | Alanadının URL'si |
$Domain.LogoUrl | Alanadı logosunun URL'si |
$CustomVariable | Süreç içinde tanımlanan özel değişkenler |
Şablon Değişkenleri için Özel Bağlamlar¶
Aktivite Bildirimleri: Aktivite bildirimlerinde, sunucu tarafı değişkenlerine ek olarak şunlar kullanılır:
| Değişken Adı | Açıklama |
|---|---|
$Id | Bir iş adımının kimlik numarası |
$WorkItem | WorkItem nesnesi (özelliklere nokta gösterimiyle erişin, ör., $WorkItem.Instance.Number) |
$Recipients | Virgülle ayrılmış alıcı adları |
$Url | Bir iş adımının URL'si. (ör.: https://mydomain.emakin.com/app/?/workitem=1234 ) |
$AssignedTo | Atanmış kullanıcıların virgülle ayrılmış kullanıcı adları |
Kullanıcı Kaydı: Kullanıcı kaydı şablonlarında, sunucu tarafı değişkenlerine ek olarak şunlar kullanılır:
| Değişken Adı | Açıklama |
|---|---|
$Ticket | Kimlik doğrulama belirteci |
$DisplayName | Kullanıcının görünen adı |