Welcome to Emakin Q&A, where you can ask questions and receive answers from other members of the community.

Categories

0 votes
76 views
1.Bir döküman arşivi oluştururken şablonlarda oluşturulan html formatındaki tablo muzu nasıl çağırabilmekteyiz?

2.Doküman arşivi oluşturma kodunu da tam olarak alabilir miyim?

3.İş sonrası Script ine yazmamız yeterli olacak mıdır? Birde acl olarak izin yetkilerinde permission alanına 1, . , . , 7 gibi sayılar veriliyor galiba bunlarda 1,3,5,7 miy di? ve yetkilendirmesi nasıldır?
Teşekkürler
by Ackbar (320 points)

3 Answers

+1 vote

1) Döküman arşivi için şablonu iki farklı şekilde hazırlayabilirsiniz: Ya dökümanı oluşturduğunuz yerde, aşağıdaki gibi bir değişkene atarsınız:

var html ='<div>' +
            '<table width="100%" border="1">' +
                '<tr>' +
                    '<td width="190px" style=" border-right-style:none;">' +
                        '<img width="220px" height="80px" src="{LogoUrl}"/>' +
                    '</td>' +
                    '<td colspan="3" align="center">' +
                       '<b>' +
                           '<font size="5">YILLIK İZİN İSTEK FORMU</font>' +
                        '</b>' +
                    '</td>' +
                '</tr>' +
                '<tr>' +
                    '<td colspan="4" align="center" height="40px">' +
                        '<b>' +
                            '<i>**Bu Bölüm Personel Tarafından Doldurulacaktır.</i>' +
                        '</b>' +
                    '</td>' +
                '</tr>' +
                '<tr>' +
                    '<td colspan="4" class="padding-left">' +
                        '<b>' +
                            '<i>Yıllık Ücretli İzin Kullanma dönemim olan ..... / ..... / 20..... ile ..... / ..... / 20..... tarihleri arasında kullanmam gereken izin hakkımı *Yıllık İzin İstek Formu'+"'"+'nda beyan ettiğim günlerde kullanmak istiyorum.' +
                                '<br/>' +
                                '<br/> Saygılarımla,' +
                            '</i>' +
                       '</b>' +
                    '</td>' +
                '</tr>' +
            '</table>' +
        '</div>';

Ya da mesaj tanımlama süreci adında aşağıdaki gibi ayrı bir süreç yaparsınız. Her bir şablonun adı olur ve detay kısmında da metin alanı koyarsınız. Şablonu da o metin alanında hazırlarsınız. {{}} kısımları, form verisinden beslenecek yerlerdir. Mesela veri modelindeki personel bilgilerini orada göstermek istiyorsanız, {{PersonelBilgileri/AdSoyad}} demeniz gerekiyor.

Bu şekilde şablonları oluşturduktan sonra da MesajSablon adında bir tablo oluşturup ismi ve şablonu oraya kaydedebilirsiniz. İstediğiniz süreçte de o şablonu çağırırsınız. Aşağıda da şablonu çağırmak için örnek bir kod var:

var mesajSablonTable = $Database.Get({ 
    Parameters : { 
        TargetSchema: 'HR', 
        TargetTable: 'MesajSablon'
    }
});

var mesajSablonList = mesajSablonTable.ToDictionary('Name');

icerik = mesajSablonList["Deneme"].Sablon;

var sablon = $Xml.Parse( $Xml.OuterXml() ).Format(icerik);

var path = 'Döküman Arşivi\\İzin Süreci\\' + $Xml.Evaluate('IzinBilgileri/TalepteBulunulanPersonelBilgileri/AdSoyad');

var doc = $Documents.New();   

 doc.Title = 'Doküman Arşivi\\İzin Süreci\\' + $Xml.Evaluate('IzinBilgileri/TalepteBulunulanPersonelBilgileri/Kisi/@Caption');​
    doc.Description = $Xml.Evaluate('IzinBilgileri/Tip/Ad') + ' Talep Belgesi';
    doc.CreatedBy = $WorkItem.CompletedBy;
    doc.ContentType = 'General';
    doc.Files.AddPDF(sablon, 'Yeni İzin Talebi');
    doc.Publish(path);

İlk olarak mesaj şablon tablosundan, ismine göre şablonu çektim. Sonrasında .Format() diyerek {{}} ile path yazdığımız yerlerin, form verisindeki değerlerini aldım.(PersonelBilgileri/AdSoyad yazılmışsa Format() fonksiyonu ismini alıp o alana yapıştırır) Sonrasında yeni bir doküman oluşturdum, özelliklerini girdim ve publish ettim.

Acl olarak da izinler, yanlış hatırlamıyorsam şu şekildeydi:

1: Read

2: Write

4: Delete

Mesela bir klasöre sadece read yetkisi vermek istiyorsanız 1 demeniz gerekiyor. Sadece write demek için 2 demelisiniz. Hem read hem de write için 1+2 = 3 demeniz gerekiyor. Tüm yetkiler için de 7(1+2+4) demelisiniz. 

by Luke Skywalker (4.3k points)
http://wiki.emakin.com/display/EMK/%24Templates.Format kullanım olarak daha iyi olabilir. Hemde şablonu kod içerisine yazma gerektirmiyor.
0 votes
by Han Solo (1.7k points)
0 votes
Kullanıcı tarafından değiştirilebilir yapıda bir xslt isteniyorsa veya dinamik bir xslt kullanma gereği varsa http://wiki.emakin.com/display/EMK/XmlNode.Transform adresinde anlatılan özellik kullanılabilir.
örneğin:
 xslt = $File.GetString($Xml.Evaluate('Xslt/File/Id'), 1254); //dosya veritabanından xslt yükleniyor ve yüklenen metnin karakter setinin türkçe olacağı belirtiliyor.

var html = $Xml.SelectSingle('n1:Invoice').Transform(xslt);    //n1:Invoice içindeki xml verisinden, Transform içinde verilen xslt ye göre html üretiliyor

        var pdfFile = $File.AddPDF(html, invoiceID + '.pdf', { //html, pdf e dönüştürülüyor
            Style : '',
            MarginTop : 5,
            MarginBottom : 5      
        });
by Han Solo (1.7k points)
...