**OData Samples**

This sample illustrates how to create simple dataspace with tables and reference links, generate OData metadata and import it into PowerQuery Excel plugin.

At first create Dataspace, SDO, tables and reference links.
<code>
set delimiter $$

// create sdo
create sdo EmployeeAddress as 
{ 
    string address1;
    string address2;
    string zipcode;
} 
namespace sdo.organization 
replace archive organization 
replace package organization
$$

// create dataspace
create dataspace Organization type tspace $$
use TSPACE.Organization $$

// create tables
create persistent table employees
(
    id int primary key,
    name string,
    age int,
    email string,
    address EmployeeAddress,
    deptId int
)
$$

create persistent table departments
(
    id int primary key,
    name string
)
$$

create persistent table states
(
    zipcode string primary key,
    state string,
    city string
)
$$

create persistent table tasks
(
    id int primary key,
    description string,
    owner int,
    assigned int,
)   
$$

// create reference links

create reference link employee_department with source at employees.deptId and target at departments.id $$
create reference link department_employees with source at departments.id and target at employees.deptId $$

create reference link employee_state with source at employees.address spath '//zipcode' and target at states.zipcode $$
create reference link state_employees with source at states.zipcode and target at employees.address spath '//zipcode' $$

create reference link task_owner with source at tasks.owner and target at employees.id $$
create reference link task_assignee with source at tasks.assigned and target at employees.id $$

create reference link employee_owned_tasks with source at employees.id and target at tasks.owner $$

</code>

At second fill tables with data
<code>
// departments
insert into departments values(1, 'IT') $$
insert into departments values(2, 'Sales') $$
insert into departments values(3, 'Marketing') $$

// states
insert into states values('10001', 'NY', 'New York') $$
insert into states values('90011', 'CA', 'Los Angeles') $$
insert into states values('94112', 'CA', 'San Francisco') $$

// employees 
EmployeeAddress addr = new EmployeeAddress();

addr.address1 = '99 Broadway' $$
addr.zipcode = '10001' $$
insert into employees values(1, 'Mike', 30, 'mike@gmail.com', addr, 1) $$

addr.address1 = '333 5 Ave' $$
addr.zipcode = '10001' $$
insert into employees values(2, 'John', 31, 'john@gmail.com', addr, 1) $$

addr.address1 = '6725 Sunset' $$
addr.zipcode = '90011' $$
insert into employees values(3, 'Karen', 25, 'karen@gmail.com', addr, 2) $$

addr.address1 = '111 Catro' $$
addr.zipcode = '94112' $$
insert into employees values(4, 'Bill', 26, 'bill@gmail.com', addr, 2) $$

addr.address1 = '324 Market st' $$
addr.zipcode = '94112' $$
insert into employees values(5, 'Dave', 26, 'dave@gmail.com', addr, 2) $$


addr.address1 = '6300 Beverly' $$
addr.zipcode = '90011' $$
insert into employees values(6, 'Steve', 29, 'steve@gmail.com', addr, 3) $$

addr.address1 = '1312 Venice' $$
addr.zipcode = '90011' $$
insert into employees values(7, 'Bob', 29, 'bob@gmail.com', addr, 3) $$


// tasks

insert into tasks values(1, 'task1', 1, 2) $$
insert into tasks values(2, 'task2', 3, 2) $$
insert into tasks values(3, 'task2', 6, 7) $$
insert into tasks values(4, 'task4', 6, 5) $$
insert into tasks values(5, 'task5', 6, 6) $$
insert into tasks values(6, 'task6', 5, 4) $$
insert into tasks values(7, 'task7', 3, 4) $$
</code>

Now we can get OData metadata URL link.

For that navigate to ''<node_http_address>/sor/dataspace/list'' and click on URL link in ''Open Data'' column for ''Organization'' dataspace.

Then copy link from popup window and provide this link to PowerQuery plugin.

Once PowerQuery plugin loads metadata, you can navigate within created tables and reference links.
