Difference between revisions of "Data Interchange DSL"

From OS.bee documentation
Jump to: navigation, search
Line 1: Line 1:
Welcome to the Data Interchange DSL wiki!
 
 
 
A general introduction and some high-level concepts for OSBP DSLs can be found in [[OSBP DSL Documentation]].
 
A general introduction and some high-level concepts for OSBP DSLs can be found in [[OSBP DSL Documentation]].
  
Line 10: Line 8:
  
 
==Overview==
 
==Overview==
 +
 +
[[File:Datainterchange.png|center|''Figure 1 - Data Interchange Structure.'']]
 +
 +
As shown in Figure 1, the DSL inferrer will generate various views and In/Export component according to model described by datainterchange DSL (and action DSL, in the case of ActionButtons). The action buttons, when clicked, will trigger their corresponding In/Export processes by putting WorkerThreadRunnable jobs into the executor job pool within the TriggerView (prefixed with datainterchang name), buttons (and toolbar / menus containing them) are further included in the perspective.
  
 
The main semantic elements of the Compex Data Interchange DSL are the following:
 
The main semantic elements of the Compex Data Interchange DSL are the following:
  
 +
* <code>package</code>
 +
::- specify the datainterchange package, which acts as a namespace. It should have the form <code>net.osbee.sample.<applicationname>.datainterchanges</code> by convention.
 +
* titletext
 +
::- the name of the datainterchange package. This name will be used for code generation and should thus be unique if there are multiple datainterchange packages.
 +
* interchangename
  
  
Line 32: Line 39:
  
 
Datainterchange DSL model files must start with a package declaration. Packages are the root element of the Entity DSL grammar. All <code>interchange</code> units have to be defined in the package.
 
Datainterchange DSL model files must start with a package declaration. Packages are the root element of the Entity DSL grammar. All <code>interchange</code> units have to be defined in the package.
 
 
 
where:
 
 
* The <code>package</code> specify the datainterchange package, which acts as a namespace. It should have the form <code>net.osbee.sample.<applicationname>.datainterchanges</code> by convention.
 
* titletext
 
::- the name of the datainterchange package. This name will be used for code generation and should thus be unique if there are multiple datainterchange packages.
 
* interchangename
 

Revision as of 14:19, 2 August 2017

A general introduction and some high-level concepts for OSBP DSLs can be found in OSBP DSL Documentation.

Purpose

The Data Interchange DSL (datainterchange for short) is made for defining data exchange models that can be used to import data from various formats (CSV, XML, EDI, etc.), map the data to entities, store them into database, or export them back into other formats.

You only need to define the relationship between the file and the bean, not the import / export process themselves. Once defined, these models can be used in e.g. action DSL to define actions which, when triggered, execute the actual import / export process, which are generated automatically by the OSBP based on the model.

Overview

Figure 1 - Data Interchange Structure.

As shown in Figure 1, the DSL inferrer will generate various views and In/Export component according to model described by datainterchange DSL (and action DSL, in the case of ActionButtons). The action buttons, when clicked, will trigger their corresponding In/Export processes by putting WorkerThreadRunnable jobs into the executor job pool within the TriggerView (prefixed with datainterchang name), buttons (and toolbar / menus containing them) are further included in the perspective.

The main semantic elements of the Compex Data Interchange DSL are the following:

  • package
- specify the datainterchange package, which acts as a namespace. It should have the form net.osbee.sample.<applicationname>.datainterchanges by convention.
  • titletext
- the name of the datainterchange package. This name will be used for code generation and should thus be unique if there are multiple datainterchange packages.
  • interchangename


Data Interchange Model File

Datainterchange DSL model files end with the .data extension. Data Interchange models may be split into several .data files, as long as they have the same package declaration.

package net.osbee.sample.<applicationname>.datainterchanges title "<titletext>" {
    interchange <interchangename> persist file
    <fileformat> "<filepath>" [<further specifications>]
    beans {
        <entity relationships>
    }
}

Package

Datainterchange DSL model files must start with a package declaration. Packages are the root element of the Entity DSL grammar. All interchange units have to be defined in the package.