blob: 601274fab65963cee7ae61e4b427d05094af2536 [file] [log] [blame]
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Currency
import ns ${{BASIC_PROJECT_NAME}}.model.entities.CurrencyDay
import ns ${{BASIC_PROJECT_NAME}}.model.entities.CurrencyNames
import ns ${{BASIC_PROJECT_NAME}}.model.entities.CurrencyNamesStream
import ns ${{BASIC_PROJECT_NAME}}.model.entities.CurrencyStream
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Customer
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Department
import ns ${{BASIC_PROJECT_NAME}}.model.entities.EDIOrderCustomer
import ns ${{BASIC_PROJECT_NAME}}.model.entities.EDIOrderHeader
import ns ${{BASIC_PROJECT_NAME}}.model.entities.EDIOrderItem
import ns ${{BASIC_PROJECT_NAME}}.model.entities.EDIOrders
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Employee
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Position
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Product
import ns ${{BASIC_PROJECT_NAME}}.model.entities.ProductClass
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Promotion
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Region
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Store
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Supplier
import ns ${{BASIC_PROJECT_NAME}}.model.entities.Warehouse
import ns ${{BASIC_PROJECT_NAME}}.model.entities.WarehouseClass
package ${{MODEL_PROJECT_PACKAGE_NAME}} {
group DataInterchange {
interchange Currencies describedBy "european central bank currency exchange rates based on euro" persist elementSize 50 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/eurofxref-daily.xml"
//XML "http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"
path {
entity CurrencyStream createOn "/Envelope/Cube" latestImport latest expression {
assign importDate with NowDate as Date
}
entity CurrencyDay createOn "/Envelope/Cube/Cube" format {
for ratingDate coding "yyyy-MM-dd"
}
mapping {
map ratingDate to "time"
}
entity Currency createOn "/Envelope/Cube/Cube/Cube" expression {
copy currencyDate from CurrencyDay property ratingDate
}
lookup {
for currencyName on CurrencyNames createOn "/Envelope/Cube/Cube/Cube" with isoCode cacheSize 300 mapTo "currency"
markerPath {
markerEntity CurrencyNamesStream markedBy latest
}
}
mapping {
map conversionRatio to "rate"
}
}
interchange CurrencyNames persist file
CSV "file://${{PROJECT_LOC}}/models/smooksresources/ISOCurrencyCodes081507.csv" delimiter ";" skipLines 1
path {
entity CurrencyNamesStream latestImport latest expression {
assign importDate with NowDate as Date
}
entity CurrencyNames
}
interchange EDIOrders describedBy "edi orders" persist elementSize 50 file
EDI "file://${{PROJECT_LOC}}/models/smooksresources/orders.edi" locale "en-US" mappingModel "file://${{PROJECT_LOC}}/models/smooksmappings/edi-order-mapping.xml" validate
path {
entity EDIOrders createOn "Order" latestImport latest expression {
assign importDate with NowDate as Date
}
entity EDIOrderHeader createOn "/Order/header" format {
for hdrDate coding "EEE MMM dd HH:mm:ss zzz yyyy"
}
mapping {
map orderId to "order-id"
map statusCode to "status-code"
map netAmount to "net-amount"
map totalAmount to "total-amount"
map taxAmount to "tax"
map hdrDate to "date"
}
entity EDIOrderCustomer createOn "/Order/customer-details" mapping {
map country to "state"
map firstName to "name/firstName"
map lastName to "name/lastName"
map userName to "userName"
}
entity EDIOrderItem createOn "/Order/order-item" mapping {
map position to "position"
map quantity to "quantity"
map sku to "product-id"
map ^title to "title"
map price to "price"
}
}
interchange Stores merge vectorName "stores" elementSize 83 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/stores.xml" locale "de_DE"
path {
entity Region
entity Store format {
for firstOpenedDate coding "dd.MM.yyyy"
for lastRemodelDate coding "dd.MM.yyyy"
for frozenSqft coding "####,#####################"
for meatSqft coding "####,#####################"
}
entity Warehouse
}
interchange Warehouses merge elementSize 80 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/warehouses.xml"
path {
entity WarehouseClass
entity Warehouse
}
interchange Products merge elementSize 80 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/products.xml"locale "de_DE"
path {
entity ProductClass
entity Product format {
for srp coding "####,#####################"
for grossWeight coding "####,#####################"
for netWeight coding "####,#####################"
for shelfWidth coding "####,#####################"
for shelfHeight coding "####,#####################"
for shelfDepth coding "####,#####################"
}
}
interchange EmployeesPosition merge elementSize 80 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/employeesposition.xml" locale "de_DE"
path {
entity Position
entity Employee format {
for birthDate coding "dd.MM.yyyy"
for hireDate coding "dd.MM.yyyy"
for endDate coding "dd.MM.yyyy"
}
}
interchange EmployeesDepartment merge elementSize 80 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/employeesdepartment.xml"
path {
entity Department
}
interchange Customer merge elementSize 80 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/customer.xml"
path {
entity Customer format {
for birthdate coding "dd.MM.yyyy"
for dateAccntOpened coding "yyyy-MM-dd"
}
}
interchange Promotion merge elementSize 80 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/promotion.xml" locale "de_DE"
path {
entity Promotion format {
for startDate coding "dd.MM.yyyy"
for endDate coding "dd.MM.yyyy"
for cost coding "####,#####################"
}
}
interchange Suppliers merge elementSize 50 file
XML "file://${{PROJECT_LOC}}/models/smooksresources/suppliers.xml"
path {
entity Supplier format {
for firstContract coding "yyyy-MM-dd"
for lastOrder coding "yyyy-MM-dd"
}
}
}
}