You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 4
Next »
Provides a NoSQL database environment for varying numbers of big entities. The data stored in an XML database are held as a big whole XML chunk containing various smaller XML nodes in a tree like structure. There are two types of XML databases used when storing XML data in Emakin; those are process databases and a domain database.
Process Database
Every time a process created in Emakin, a separate XML database is allocated for that process automatically. All the workflows running on Emakin keep their data as XML forms and whenever a workflow gets triggered from a process, its form content and an XML metadata of this workflow gets stored into the corresponding process database alongside under the root node. Any changes made on the flow automatically updates this data, for example taking an action on a task or completing a flow.
The data stored here is almost identical to the data stored in the relational database except for being in XML form. The key difference here is that XML data of a workflow is more compact and easier to obtain and organize to create desired reports with it. Besides retrieving these data from SQL data tables is managed by Emakin's built-in functions in a resctricted aspect. For this reason, using the process data stored in XML databases is more practical when generating report views depending on process data.
Instance Data
The XML metadata stored in the process database is enclosed within <Instance> tags and contains various information about the goings-on of a workflow. Instance node represents the workflow's itself and contains a list of every work item owned. Whenever a work item belonging to a flow is completed, its XML metadata gets stored into its corresponding work items list.
See below for an XML example of instance data:
<Instance>
<Id>03252c09-3262-46e7-a561-9ae6aeade420</Id>
<Number>95</Number>
<TestMode>True</TestMode>
<Culture>en</Culture>
<State>Completed</State>
<Start>2019-03-04T11:24:42.6256957+03:00</Start>
<End>2019-03-04T11:26:41.6729273+03:00</End>
<WorkItems>
<WorkItem>
<Id>dec1eb1e-e208-4f80-a4ca-1eaa90ff4fea</Id>
<Name>Ayarlar</Name>
<Caption>Ayarlar</Caption>
<State>Completed</State>
<Start>2019-03-04T11:24:42.6256957+03:00</Start>
<End>2019-03-04T11:26:41.4326151+03:00</End>
<Duration>1.9801153233333333</Duration>
<SelectedActionId>aecd0dfe-f714-4309-b770-d7758634b327</SelectedActionId>
<SelectedAction>Kaydet</SelectedAction>
<IsDeadlined>False</IsDeadlined>
<DeadlineDate/>
<Previous/>
<CompletedBy Caption="Bülent Yüksel">b8e60233-7fce-4d8d-a597-acd4fd90ce05</CompletedBy>
<DataId>6e890fca-ac40-4daf-ba5b-5080410c8ed6</DataId>
<DataRoot>Ayarlar</DataRoot>
</WorkItem>
</WorkItems>
</Instance>
Similar to the instance metadata, form content generated by the process also gets stored into process database and is enclosed within <form> tags. Every time a work item is completed, its existing XML form data gets updated to reflect the latest changes made on the form.
See below for an XML example of form data:
<form Id="59fb012d-9f9e-487a-8221-c22df25a07f2">
<Data>
<Baslatan>
<Personel Caption="Merve Karakus" Type="User" Domain="c62eddc6-f22f-4ddd-8f92-62f419e67ec6">a762694d-f6bc-4325-bb17-0af06b683fde</Personel>
<SicilNo>1111</SicilNo>
<Departman>
<Id>d37fae6c-29a9-4d26-b507-b0e601a194fa</Id>
<Name>Satış</Name>
</Departman>
<Eposta>merve.karakus@6kare.com</Eposta>
<CepTel/>
</Baslatan>
<Oneri>
<Tarih>2019-01-28T12:04:02.5593491Z</Tarih>
<Baslik>Satış listelerinde esnekliği sağlayacak fiyat oranlarının olması</Baslik>
<Kategoriler>
<Id>0103ffd5-6877-420f-9c2c-837af44690ef</Id>
<Name>Satış - Pazarlama</Name>
</Kategoriler>
<Etiketler>
<Etiket>
<Id>775e0cc7-0a6b-40c0-b73b-4cb93d0442d1</Id>
<Name>Satış arttırma</Name>
</Etiket>
</Etiketler>
<Onerenler>
<Id>K</Id>
<Name>Kişisel</Name>
</Onerenler>
<YayinSekli>
<Id>A</Id>
<Name>Açık</Name>
</YayinSekli>
<Detay/>
<IlgiliDepartman Caption="Satış" Type="" Domain="">d37fae6c-29a9-4d26-b507-b0e601a194fa</IlgiliDepartman>
<DigerOnerenler/>
<OneriNo>ONR-46</OneriNo>
<OneriId>8051ab79-a37d-4a91-adfa-3f300af9c02c</OneriId>
<AyinOnerisi/>
<PuanlamayiGecti>true</PuanlamayiGecti>
<Sahibi Caption="" Type="" Domain=""/>
<Donem>
<Ay>
<Id>01</Id>
<Name>Ocak</Name>
</Ay>
<Yil>
<Id>2019</Id>
<Name>2019</Name>
</Yil>
</Donem>
<SonucAciklama/>
</Oneri>
<Ciktilar>
<Cikti>
<Mevcut/>
<Yeni/>
</Cikti>
</Ciktilar>
<Dokumanlar>
<Dokuman>
<Id Caption="" Url=""/>
<Aciklama/>
</Dokuman>
</Dokumanlar>
<Form>
<InstanceNo>342</InstanceNo>
<Id>8a2edd3d-5bc4-4335-9201-1e19c7027bb5</Id>
<LastWorkItemId>9e2e0618-b444-45ff-8941-a293cd20e830</LastWorkItemId>
<State>Öneri Onaylandı</State>
<TaskName>Öneri Değerlendirme</TaskName>
<Karar>Onay</Karar>
</Form>
<Puanlama/>
<Sorular>
<Soru>
<Soru>Mevcut durumu açıklayınız/tanımlayınız.</Soru>
<Aciklama>Öneriniz ile ilgili detaylı bilgileri yazınız.</Aciklama>
<Cevap>Esnek fiyat politikası olmadığı için müşteri kaybediyoruz.</Cevap>
</Soru>
<Soru>
<Soru>Önerdiğiniz durumu ve çözümü açıklayınız/tanımlayınız.</Soru>
<Aciklama>Öneriniz ile ilgili faydaları listeleyiniz.</Aciklama>
<Cevap>Testt</Cevap>
</Soru>
</Sorular>
<Projelendirme>
<Karar>
<Id>G</Id>
<Name>Geliştirme (Yatırım gerektiren öneriler)</Name>
</Karar>
<Yorum>Test</Yorum>
<BaslangicTarihi/>
<BitisTarihi/>
</Projelendirme>
<OnDegerlendirmeOnaylar>
<MerkezOnay>
<Durum>Uygun</Durum>
<Onayci Caption="Merve Karakus" Type="User" Domain="c62eddc6-f22f-4ddd-8f92-62f419e67ec6">a762694d-f6bc-4325-bb17-0af06b683fde</Onayci>
<Tip>Merkez</Tip>
<WorkItemId>a872aa30-72fe-48d3-9bf0-f5d0812eac8a</WorkItemId>
<Yorum/>
</MerkezOnay>
<FabrikaOnay>
<Durum>Uygun</Durum>
<Onayci Caption="" Type="" Domain=""/>
<Tip>Fabrika</Tip>
<WorkItemId>3a2031f8-900c-4ae0-9b19-988ec6f3fb93</WorkItemId>
<Yorum/>
</FabrikaOnay>
<IsVisible>false</IsVisible>
</OnDegerlendirmeOnaylar>
</Data>
</form>