Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Provides a NoSQL database environment for varying numbers of big entities. Because of Emakin being quite connected with XML data type, as all contents created by users are being kept primarily in XML form, using XML database is straightforwardly practical. The data stored in XML database are is held as a big whole XML chunk containing various smaller XML nodes in a tree like structure. This data can be retrieved from within server-side scripts of processes to populate forms using XmlNode.Load$XmlRepository.Query and $XmlRepository.QueryXml methods and on the forms with XML Database Query data source.

There are two types of XML databases used when storing XML data in Emakin; : those are process databases and a domain database.

...

In this example, settings for the Leave Request process get stored in domain database and their data is enclosed between <LRDictionary> tags as an arbitrary choice. It includes HR authorities' information, leave type definitions and their localization data, and a list of people for some exceptions depending on the design of this the process. A settings screen designed in this process loads this XML data and lets users to modify it depending on their needs, which makes this process quite flexible.

...

The data stored here is almost identical to the data stored in the relational database except for it being in an 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 that data from SQL, data tables is are managed by Emakin's built-in functions in a restricted aspect. For this reason, using the process data stored in XML databases is more practical when generating report views depending on process 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 the form data:

Code Block
languagexml
titleForm Data
collapsetrue
<form Id="f2e38788-9dbc-4e80-8c93-0b9410c07642">
  <ExpenseForm>
    <PersonnelInformation>
      <Owner Caption="Bülent Yüksel" Type="User" Domain="cadf027b-8cc3-41e1-b0e2-ed856a0579fa">b8e60233-7fce-4d8d-a597-acd4fd90ce05</Owner>
      <RegistryNumber>4444</RegistryNumber>
      <Department Caption="Research and Development">c647464d-3745-4373-8309-0cfa0a34ae70</Department>
      <Location Caption=""/>
    </PersonnelInformation>
    <ExpenseInformation>
      <Date>2019-03-14T11:02:09.2821462+03:00</Date>
    </ExpenseInformation>
    <ExpenseList>
      <Expense>
        <Id>2ccb89d7-b32a-478a-b481-ae393caf3100</Id>
        <Date>2019-03-06T00:00:00+03:00</Date>
        <ExpenseTypeGroup Caption="Transport">16</ExpenseTypeGroup>
        <ExpenseType Caption="Highway">1601</ExpenseType>
        <CostArea/>
        <DocumentDate/>
        <Reason>Taxi fare to customer</Reason>
        <DocumentNumber/>
        <DocumentTitle/>
        <DocumentTaxNumber/>
        <Amount>18.00</Amount>
        <Unit Caption="US Dollar">USD</Unit>
        <CrossRate>1.00</CrossRate>
        <ConvertedAmount>18</ConvertedAmount>
        <VAT Caption="8">8</VAT>
      </Expense>
    </ExpenseList>
  </ExpenseForm>
</form>

...