Ana içeriğe geç

XML Veritabanı

Emakin, büyük XML veri kümelerini depolamak için XML NoSQL veritabanı kullanır. Emakin'in XML verilerine yoğun biçimde dayanması nedeniyle bu yaklaşım özellikle uygundur. Veriler, iç içe öğelerden oluşan tek ve büyük bir XML belgesi olarak saklanır. Erişim, sunucu tarafı komut dosyalarında 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öneticisi tarafından açıkça etkinleştirilmesi gerekir.

Alanadı Veritabanı

Alanadı veritabanı, alanadındaki tüm süreçler arasında paylaşılır. Alanadı genelindeki verileri saklamak için kullanılır. Tüm sorgularda XQuerykullanılır. Emakin, daha basit işlemler için Save ve Load işlevlerini sağlar. Save mevcut düğümlerin üzerine yazar; Load alma işlemi için XQuery kullanır.

Alanadı Veritabanına Veri Kaydetme

Bu örnekte XmlNode.Save kullanılarak Customer düğümü Customer/<Id> yolunun altına kaydedilir:

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

Alanadı Veritabanından Veri Yükleme

Bu örnekte XmlNode.Load kullanılarak Customer düğümü 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 istatistikler için iş akışı verilerini saklar. Bu veriler ilişkisel veritabanındaki verileri 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çindeki) iş akışı ayrıntılarını ve tamamlanmış iş adımlarının listesini içerir. Arka plan işi ("Instance Xml Database Replication"), iş adımı tamamlandığında veritabanını günceller. Bu işi izlemek için Arka Plan İşleri Yöneticisi'ni kullanın.

Örnek İş Akışı Verileri:

 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 saklanır ve iş adımı tamamlandığında güncellenir. Bu güncellemeyi bir arka plan işi ("Form Data Xml Database Replication") yönetir.

Örnek Form Verileri:

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