Ana içeriğe geç

XML Veritabanı

Emakin, büyük XML veri kümelerini depolamak için bir XML NoSQL veritabanı kullanır. Emakin'in XML verilerine yoğun biçimde dayanması göz önüne alındığında bu veritabanı özellikle uygundur. Veriler, iç içe geçmiş öğeler içeren tek ve büyük bir XML belgesi olarak depolanır. Erişim, sunucu tarafı komut dizilerinde Xml.Load ve $XmlRepository.Query yöntemleriyle, formlarda ise XML Veritabanı Sorgusu veri kaynağıyla sağlanır.

Emakin iki tür XML veritabanı kullanır: Alanadı ve Süreç veritabanları. Süreç veritabanı varsayılan olarak devre dışıdır ve sistem yöneticisinin açıkça etkinleştirmesini gerektirir.

Alanadı Veritabanı

Alanadı veritabanı, bir alanadındaki tüm süreçler arasında paylaşılır. Alanadı genelindeki verileri depolamak için kullanılır. Tüm sorgular XQuerykullanır. Emakin, daha basit işlemler için Save ve Load işlevlerini sunar. Save mevcut düğümlerin üzerine yazar; Load verileri almak için XQuery kullanır.

Alanadı Veritabanına Veri Kaydetme

Bu örnekte XmlNode.Save kullanılarak düğüm şu Customer yolun altında Customer/<Id> depolanır:

1
$Xml.Save('Customer', 'Customer/' + $Xml.Evaluate('Id'));

Alanadı Veritabanından Veri Yükleme

Bu örnekte XmlNode.Load kullanılarak düğüm Customer alınır:

1
$Xml.SelectSingle('Customer').Load('Customer[Id=1]');

Daha karmaşık XQuery sorguları da desteklenir (bkz. XQuery belgeleri). Örneğin:

1
2
3
4
5
6
7
$Xml.Load('for $c in /Customer ' +
        'where $c/Id=1 ' +
        'return ' +
        '  <Customer> ' +
        '    <Id>{ $c/Id }</Id> ' +
        '    <Name>{ $c/Name }</Name> ' +
        '  </Customer> ');

Süreç Veritabanı

Süreç veritabanı her süreç için otomatik olarak oluşturulur ve raporlama ile istatistik amaçlı iş akışı verilerini depolar. Bu veriler ilişkisel veritabanını yansıtır ancak daha kompakt bir XML biçimindedir ve rapor oluşturmayı kolaylaştırır.

Note

Süreç veritabanı varsayılan olarak devre dışıdır ve sistem yöneticisinin etkinleştirmesini gerektirir.

İş Akışı Verileri

İş akışı meta verileri ( <Instance> etiketleri içinde), iş akışı ayrıntılarını ve tamamlanmış iş adımlarının listesini içerir. Arka plan görevi ("Instance Xml Database Replication"), iş adımı tamamlandığında veritabanını günceller. Bu görevi izlemek için Arka Plan Görevleri Yöneticisi'ni kullanın.

İş Akışı Verisi Örneği:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<Instance>
    <Id>...</Id>
    <Number>...</Number>
    <State>...</State>
    <Start>...</Start>
    <End>...</End>
    <WorkItems>
        <WorkItem>
            <Id>...</Id>
            <Name>...</Name>
            <State>...</State>
            <Start>...</Start>
            <End>...</End>
            <CompletedBy>...</CompletedBy>
            <DataId>...</DataId>
            <DataRoot>...</DataRoot>
        </WorkItem>
        ...
    </WorkItems>
</Instance>

Form Verileri

Form verileri de ( <form> etiketleri içinde) benzer şekilde depolanır ve iş adımı tamamlandığında güncellenir. Bu güncellemeyi bir arka plan görevi ("Form Data Xml Database Replication") yönetir.

Form Verisi Örneği:

1
2
3
4
5
<form Id="...">
    <MyRoot>
        <MyField>MyValue</MyField>
    </MyRoot>
</form>