├── .github └── workflows │ └── BuildAndValidateTabularModel.yml ├── .gitignore ├── AdventureWorks ├── dataSources │ └── te3-sql-training.json ├── database.json └── tables │ ├── Currency │ ├── Currency.json │ ├── columns │ │ ├── Currency Code.json │ │ ├── CurrencyKey.json │ │ ├── CurrencyName.json │ │ └── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ └── partitions │ │ └── Currency.json │ ├── Customer │ ├── Customer.json │ ├── columns │ │ ├── Address Line 1.json │ │ ├── Address Line 2.json │ │ ├── Birth Date.json │ │ ├── Commute Distance.json │ │ ├── Customer Id.json │ │ ├── CustomerKey.json │ │ ├── Date Of First Purchase.json │ │ ├── Education.json │ │ ├── Email Address.json │ │ ├── First Name.json │ │ ├── Gender.json │ │ ├── GeographyKey.json │ │ ├── Last Name.json │ │ ├── Marital Status.json │ │ ├── Middle Name.json │ │ ├── Name Style.json │ │ ├── Number of Children At Home.json │ │ ├── Occupation.json │ │ ├── Owns House.json │ │ ├── Phone.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── Suffix.json │ │ ├── Title.json │ │ ├── Total Cars Owned.json │ │ ├── Total Children.json │ │ └── Yearly Income.json │ └── partitions │ │ └── Customer.json │ ├── Date │ ├── Date.json │ ├── columns │ │ ├── Calendar Quarter.json │ │ ├── Calendar Semester.json │ │ ├── Calendar Year.json │ │ ├── Date.json │ │ ├── DateKey.json │ │ ├── Day Name Of Week.json │ │ ├── Day Number Of Week.json │ │ ├── Day Of Month.json │ │ ├── Day Of Year.json │ │ ├── Fiscal Quarter.json │ │ ├── Fiscal Semester.json │ │ ├── Fiscal Year.json │ │ ├── Month Name.json │ │ ├── Month.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ └── Week Of Year.json │ ├── hierarchies │ │ ├── Calendar.json │ │ ├── Fiscal.json │ │ └── Production Calendar.json │ ├── measures │ │ ├── Days In Current Quarter to Date.json │ │ └── Days In Current Quarter.json │ └── partitions │ │ └── Date.json │ ├── Employee │ ├── Employee.json │ ├── columns │ │ ├── Base Rate.json │ │ ├── Birth Date.json │ │ ├── Department Name.json │ │ ├── Email.json │ │ ├── Emergency Contact Name.json │ │ ├── Emergency Contact Phone.json │ │ ├── Employee Id.json │ │ ├── Employee Photo.json │ │ ├── EmployeeKey.json │ │ ├── End Date.json │ │ ├── First Name.json │ │ ├── Gender.json │ │ ├── Hire Date.json │ │ ├── Is Current.json │ │ ├── Is Salaried.json │ │ ├── Is Sales Person.json │ │ ├── Last Name.json │ │ ├── Login.json │ │ ├── Marital Status.json │ │ ├── Middle Name.json │ │ ├── NameStyle.json │ │ ├── ParentEmployeeKey.json │ │ ├── Pay Frequency.json │ │ ├── Phone.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── SalesTerritoryKey.json │ │ ├── Sick Leave Hours.json │ │ ├── Start Date.json │ │ ├── Status.json │ │ ├── Title.json │ │ └── Vacation Hours.json │ └── partitions │ │ └── Employee.json │ ├── Geography │ ├── Geography.json │ ├── columns │ │ ├── City.json │ │ ├── Country Region Code.json │ │ ├── Country Region Name.json │ │ ├── GeographyKey.json │ │ ├── Postal Code.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── SalesTerritoryKey.json │ │ ├── State Province Code.json │ │ └── State Province Name.json │ ├── hierarchies │ │ └── Geography.json │ └── partitions │ │ └── Geography.json │ ├── Internet Sales │ ├── Internet Sales.json │ ├── columns │ │ ├── Carrier Tracking Number.json │ │ ├── CurrencyKey.json │ │ ├── Customer PO Number.json │ │ ├── CustomerKey.json │ │ ├── Discount Amount.json │ │ ├── Due Date.json │ │ ├── DueDateKey.json │ │ ├── Extended Amount.json │ │ ├── Freight.json │ │ ├── Gross Profit.json │ │ ├── Order Date.json │ │ ├── Order Quantity.json │ │ ├── OrderDateKey.json │ │ ├── Product Standard Cost.json │ │ ├── ProductKey.json │ │ ├── PromotionKey.json │ │ ├── Revision Number.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── Sales Amount.json │ │ ├── Sales Order Line Number.json │ │ ├── Sales Order Number.json │ │ ├── SalesTerritoryKey.json │ │ ├── Ship Date.json │ │ ├── ShipDateKey.json │ │ ├── Tax Amount.json │ │ ├── Total Product Cost.json │ │ ├── Unit Price Discount Pct.json │ │ └── Unit Price.json │ ├── measures │ │ ├── Current Quarter Gross Profit Performance.json │ │ ├── Current Quarter Gross Profit.json │ │ ├── Current Quarter Sales Performance.json │ │ ├── Current Quarter Sales.json │ │ ├── Internet Distinct Count Sales Order.json │ │ ├── Internet Order Lines Count.json │ │ ├── Internet Previous Quarter Gross Profit Proportion to QTD.json │ │ ├── Internet Previous Quarter Gross Profit.json │ │ ├── Internet Previous Quarter Sales Proportion to QTD.json │ │ ├── Internet Previous Quarter Sales.json │ │ ├── Internet Total Discount Amount.json │ │ ├── Internet Total Freight.json │ │ ├── Internet Total Gross Profit.json │ │ ├── Internet Total Product Cost.json │ │ ├── Internet Total Sales.json │ │ ├── Internet Total Tax Amount.json │ │ └── Internet Total Units.json │ └── partitions │ │ ├── Internet Sales 2010.json │ │ ├── Internet Sales 2011.json │ │ ├── Internet Sales 2012.json │ │ ├── Internet Sales 2013.json │ │ ├── Internet Sales 2014.json │ │ └── Internet Sales 2015.json │ ├── Product Category │ ├── Product Category.json │ ├── columns │ │ ├── Product Category Name.json │ │ ├── ProductCategoryKey.json │ │ └── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ └── partitions │ │ └── Product Category.json │ ├── Product Inventory │ ├── Product Inventory.json │ ├── columns │ │ ├── DateKey.json │ │ ├── Movement Date.json │ │ ├── Product-Date Inventory Value.json │ │ ├── Product-Date Max Inventory Value.json │ │ ├── Product-Date Negative Stock.json │ │ ├── Product-Date Optimal Inventory Value.json │ │ ├── Product-Date OverStocked.json │ │ ├── Product-Date UnderStocked.json │ │ ├── ProductKey.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── Unit Cost.json │ │ ├── Units Balance.json │ │ ├── Units In.json │ │ └── Units Out.json │ ├── measures │ │ ├── Products OverStocked.json │ │ ├── Products UnderStocked.json │ │ ├── Products with Negative Stock.json │ │ ├── Total Inventory Maximum Value.json │ │ ├── Total Inventory Optimal Value.json │ │ ├── Total Inventory Value Performance.json │ │ ├── Total Inventory Value.json │ │ ├── Total Units In.json │ │ ├── Total Units Movement.json │ │ ├── Total Units Out.json │ │ └── Total Units.json │ └── partitions │ │ ├── Product Inventory 2010.json │ │ ├── Product Inventory 2011.json │ │ ├── Product Inventory 2012.json │ │ ├── Product Inventory 2013.json │ │ └── Product Inventory 2014.json │ ├── Product Subcategory │ ├── Product Subcategory.json │ ├── columns │ │ ├── Product Subcategory Name.json │ │ ├── ProductCategoryKey.json │ │ ├── ProductSubcategoryKey.json │ │ └── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ └── partitions │ │ └── Product Subcategory.json │ ├── Product │ ├── Product.json │ ├── columns │ │ ├── Class.json │ │ ├── Color.json │ │ ├── Days To Manufacture.json │ │ ├── Dealer Price.json │ │ ├── Description.json │ │ ├── Is Finished Goods.json │ │ ├── LargePhoto.json │ │ ├── List Price.json │ │ ├── Model Name.json │ │ ├── Product Category Name.json │ │ ├── Product End Date.json │ │ ├── Product Id.json │ │ ├── Product Line.json │ │ ├── Product Name.json │ │ ├── Product Start Date.json │ │ ├── Product Status.json │ │ ├── Product SubCategory Name.json │ │ ├── ProductKey.json │ │ ├── ProductSubcategoryKey.json │ │ ├── Reorder Point.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── Safety Stock Level.json │ │ ├── Size Range.json │ │ ├── Size Unit Code.json │ │ ├── Size.json │ │ ├── Standard Cost.json │ │ ├── Style.json │ │ ├── Weight Unit Code.json │ │ └── Weight.json │ ├── hierarchies │ │ └── Category.json │ └── partitions │ │ └── Product.json │ ├── Promotion │ ├── Promotion.json │ ├── columns │ │ ├── DiscountPct.json │ │ ├── Max Quantity.json │ │ ├── Min Quantity.json │ │ ├── Promotion Category.json │ │ ├── Promotion End Date.json │ │ ├── Promotion Name.json │ │ ├── Promotion Start Date.json │ │ ├── Promotion Type.json │ │ ├── PromotionKey.json │ │ └── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ └── partitions │ │ └── Promotion.json │ ├── Reseller Sales │ ├── Reseller Sales.json │ ├── columns │ │ ├── Carrier Tracking Number.json │ │ ├── CurrencyKey.json │ │ ├── Discount Amount.json │ │ ├── Due Date.json │ │ ├── DueDateKey.json │ │ ├── EmployeeKey.json │ │ ├── Extended Amount.json │ │ ├── Freight.json │ │ ├── Gross Profit.json │ │ ├── Order Date.json │ │ ├── Order Quantity.json │ │ ├── OrderDateKey.json │ │ ├── Product Standard Cost.json │ │ ├── ProductKey.json │ │ ├── PromotionKey.json │ │ ├── Reseller PO Number.json │ │ ├── ResellerKey.json │ │ ├── Revision Number.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── Sales Amount.json │ │ ├── Sales Order Line Number.json │ │ ├── Sales Order Number.json │ │ ├── SalesTerritoryKey.json │ │ ├── Ship Date.json │ │ ├── ShipDateKey.json │ │ ├── Tax Amount.json │ │ ├── Total Product Cost.json │ │ ├── Unit Price Discount Pct.json │ │ └── Unit Price.json │ ├── measures │ │ ├── Reseller Current Quarter Gross Profit Performance.json │ │ ├── Reseller Current Quarter Gross Profit.json │ │ ├── Reseller Current Quarter Sales Performance.json │ │ ├── Reseller Current Quarter Sales.json │ │ ├── Reseller Distinct Count Sales Order.json │ │ ├── Reseller Order Lines Count.json │ │ ├── Reseller Previous Quarter Gross Profit Proportion to QTD.json │ │ ├── Reseller Previous Quarter Gross Profit.json │ │ ├── Reseller Previous Quarter Sales Proportion to QTD.json │ │ ├── Reseller Previous Quarter Sales.json │ │ ├── Reseller Total Discount Amount.json │ │ ├── Reseller Total Freight.json │ │ ├── Reseller Total Gross Profit.json │ │ ├── Reseller Total Product Cost.json │ │ ├── Reseller Total Sales - Sales Territory sliced by Employee.json │ │ ├── Reseller Total Sales - Sales Territory sliced by Reseller.json │ │ ├── Reseller Total Sales.json │ │ ├── Reseller Total Tax Amount.json │ │ └── Reseller Total Units.json │ └── partitions │ │ ├── Reseller Sales 2010.json │ │ ├── Reseller Sales 2011.json │ │ ├── Reseller Sales 2012.json │ │ └── Reseller Sales 2013.json │ ├── Reseller │ ├── Reseller.json │ ├── columns │ │ ├── Address Line 1.json │ │ ├── Address Line 2.json │ │ ├── Annua Revenue.json │ │ ├── Annual Sales.json │ │ ├── Bank Name.json │ │ ├── Business Type.json │ │ ├── First Order Year.json │ │ ├── GeographyKey.json │ │ ├── Last Order Year.json │ │ ├── Min Payment Amount.json │ │ ├── Min Payment Type.json │ │ ├── Number Employees.json │ │ ├── Order Frequency.json │ │ ├── Order Month.json │ │ ├── Product Line.json │ │ ├── Reseller Id.json │ │ ├── Reseller Name.json │ │ ├── Reseller Phone.json │ │ ├── ResellerKey.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ └── Year Opened.json │ └── partitions │ │ └── Reseller.json │ ├── Sales Quota │ ├── Sales Quota.json │ ├── columns │ │ ├── Calendar Quarter.json │ │ ├── Calendar Year.json │ │ ├── Date.json │ │ ├── DateKey.json │ │ ├── EmployeeKey.json │ │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ │ ├── Sales Amount Quota.json │ │ └── SalesQuotaKey.json │ └── partitions │ │ └── Sales Quota.json │ └── Sales Territory │ ├── Sales Territory.json │ ├── columns │ ├── RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json │ ├── Sales Territory Country.json │ ├── Sales Territory Group.json │ ├── Sales Territory Image.json │ ├── Sales Territory Region.json │ └── SalesTerritoryKey.json │ ├── hierarchies │ └── Territory.json │ ├── measures │ ├── Distinct Count Sales Orders.json │ ├── Order Lines Count.json │ ├── Total Current Quarter Gross Profit Performance.json │ ├── Total Current Quarter Gross Profit.json │ ├── Total Current Quarter Sales Performance.json │ ├── Total Current Quarter Sales.json │ ├── Total Discount Amount.json │ ├── Total Freight.json │ ├── Total Gross Profit.json │ ├── Total Previous Quarter Gross Profit Proportion to QTD.json │ ├── Total Previous Quarter Gross Profit.json │ ├── Total Previous Quarter Sales Proportion to QTD.json │ ├── Total Previous Quarter Sales.json │ ├── Total Products Cost.json │ ├── Total Sales - Sales Territory sliced by Employee.json │ ├── Total Sales.json │ ├── Total Tax Amount.json │ └── Total Units Sold.json │ └── partitions │ └── Sales Territory.json ├── PbixFiles ├── Customer Profitability Sample PBIX.pbix ├── Human Resources Sample PBIX.pbix ├── Procurement Analysis Sample PBIX.pbix ├── Retail Analysis Sample PBIX.pbix ├── Sales and Marketing Sample PBIX.pbix └── Supplier-Quality-Analysis-Sample-PBIX.pbix ├── README.md └── Scripts ├── DownloadTE2.ps1 └── ReplaceDataSourceConnectionString.csx /.github/workflows/BuildAndValidateTabularModel.yml: -------------------------------------------------------------------------------- 1 | name: BuildAndValidateTabularModel 2 | on: 3 | # Triggers the workflow on push or pull request events but only for the main branch 4 | #push: 5 | # branches: [ main ] 6 | #pull_request: 7 | # branches: [ main ] 8 | 9 | # Allows you to run this workflow manually from the Actions tab 10 | workflow_dispatch: 11 | 12 | jobs: 13 | validation: 14 | runs-on: windows-latest 15 | environment: Dev 16 | steps: 17 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 18 | - uses: actions/checkout@v2 19 | 20 | - name: Download Tabular Editor 2.x 21 | shell: pwsh 22 | run: .\Scripts\DownloadTE2.ps1 23 | 24 | - name: Run a Best Practice Analysis 25 | shell: cmd 26 | run: TabularEditor.exe .\AdventureWorks -A -G 27 | # 28 | # - name: Perform data source schema scheck 29 | # shell: cmd 30 | # env: 31 | # SQLDW_CONNECTIONSTRING: ${{ secrets.SQLDW_CONNECTIONSTRING }} 32 | # run: TabularEditor.exe .\AdventureWorks -S ".\Scripts\ReplaceDataSourceConnectionString.csx" -SC -G 33 | 34 | - name: Deploy to Power BI 35 | shell: cmd 36 | env: 37 | SQLDW_CONNECTIONSTRING: ${{ secrets.SQLDW_CONNECTIONSTRING }} 38 | AS_CONNECTIONSTRING: ${{ secrets.AS_CONNECTIONSTRING }} 39 | run: TabularEditor.exe .\AdventureWorks -S ".\Scripts\ReplaceDataSourceConnectionString.csx" -D "%AS_CONNECTIONSTRING%" ValidationDataset -O -C -G -E -W 40 | -------------------------------------------------------------------------------- /AdventureWorks/dataSources/te3-sql-training.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "te3-sql-training", 3 | "connectionString": "data source=te3-training-sql.database.windows.net;initial catalog=AdventureWorksDW2019;persist security info=True;user id=sqlreader", 4 | "impersonationMode": "impersonateServiceAccount", 5 | "provider": "System.Data.SqlClient", 6 | "annotations": [ 7 | { 8 | "name": "ConnectionEditUISource", 9 | "value": "SqlServer" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Currency/Currency.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Currency", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_DbSchemaName", 6 | "value": "dbo" 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimCurrency" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_QueryDefinition", 14 | "value": " SELECT [dbo].[DimCurrency].* FROM [dbo].[DimCurrency] " 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": "[]" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Currency/columns/Currency Code.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Currency Code", 3 | "dataType": "string", 4 | "sourceColumn": "CurrencyAlternateKey", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Currency/columns/CurrencyKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CurrencyKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "CurrencyKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Currency/columns/CurrencyName.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CurrencyName", 3 | "dataType": "string", 4 | "sourceColumn": "CurrencyName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Currency/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Currency/partitions/Currency.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Currency", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimCurrency].* \t\tFROM [dbo].[DimCurrency]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "QueryEditorSerialization" 11 | }, 12 | { 13 | "name": "TableWidgetSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/Customer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Customer", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_QueryDefinition", 6 | "value": " SELECT [dbo].[DimCustomer].* FROM [dbo].[DimCustomer] " 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimCustomer" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_DbSchemaName", 14 | "value": "dbo" 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Customer\",", 26 | " \"fromColumn\": \"GeographyKey\",", 27 | " \"toTable\": \"Geography\",", 28 | " \"toColumn\": \"GeographyKey\"", 29 | " }", 30 | "]" 31 | ] 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Address Line 1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Address Line 1", 3 | "dataType": "string", 4 | "sourceColumn": "AddressLine1", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Address Line 2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Address Line 2", 3 | "dataType": "string", 4 | "sourceColumn": "AddressLine2", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Birth Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Birth Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "BirthDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Commute Distance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Commute Distance", 3 | "dataType": "string", 4 | "sourceColumn": "CommuteDistance", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Customer Id.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Customer Id", 3 | "dataType": "string", 4 | "sourceColumn": "CustomerAlternateKey", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/CustomerKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CustomerKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "CustomerKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Date Of First Purchase.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Date Of First Purchase", 3 | "dataType": "dateTime", 4 | "sourceColumn": "DateFirstPurchase", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Education.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Education", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishEducation", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Email Address.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Email Address", 3 | "dataType": "string", 4 | "sourceColumn": "EmailAddress", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/First Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "First Name", 3 | "dataType": "string", 4 | "sourceColumn": "FirstName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Gender.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Gender", 3 | "dataType": "string", 4 | "sourceColumn": "Gender", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/GeographyKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "GeographyKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "GeographyKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Last Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Last Name", 3 | "dataType": "string", 4 | "sourceColumn": "LastName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Marital Status.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Marital Status", 3 | "dataType": "string", 4 | "sourceColumn": "MaritalStatus", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Middle Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Middle Name", 3 | "dataType": "string", 4 | "sourceColumn": "MiddleName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Name Style.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Name Style", 3 | "dataType": "boolean", 4 | "sourceColumn": "NameStyle", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Number of Children At Home.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Number of Children At Home", 3 | "dataType": "int64", 4 | "sourceColumn": "NumberChildrenAtHome", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Occupation.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Occupation", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishOccupation", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Owns House.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Owns House", 3 | "dataType": "boolean", 4 | "sourceColumn": "HouseOwnerFlag", 5 | "formatString": "\"TRUE\";\"TRUE\";\"FALSE\"", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Phone.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Phone", 3 | "dataType": "string", 4 | "sourceColumn": "Phone", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Suffix.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Suffix", 3 | "dataType": "string", 4 | "sourceColumn": "Suffix", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Title.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title", 3 | "dataType": "string", 4 | "sourceColumn": "Title", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Total Cars Owned.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Cars Owned", 3 | "dataType": "int64", 4 | "sourceColumn": "NumberCarsOwned", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Total Children.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Children", 3 | "dataType": "int64", 4 | "sourceColumn": "TotalChildren", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/columns/Yearly Income.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Yearly Income", 3 | "dataType": "decimal", 4 | "sourceColumn": "YearlyIncome", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Customer/partitions/Customer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Customer", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimCustomer].* \t\tFROM [dbo].[DimCustomer]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "TableWidgetSerialization" 11 | }, 12 | { 13 | "name": "QueryEditorSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Date", 3 | "dataCategory": "Time", 4 | "annotations": [ 5 | { 6 | "name": "_TM_ExtProp_QueryDefinition", 7 | "value": " SELECT [dbo].[DimDate].* FROM [dbo].[DimDate] " 8 | }, 9 | { 10 | "name": "_TM_ExtProp_DbTableName", 11 | "value": "DimDate" 12 | }, 13 | { 14 | "name": "_TM_ExtProp_DbSchemaName", 15 | "value": "dbo" 16 | }, 17 | { 18 | "name": "TabularEditor_InPerspective", 19 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 20 | }, 21 | { 22 | "name": "TabularEditor_Relationships", 23 | "value": "[]" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Calendar Quarter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Calendar Quarter", 3 | "dataType": "int64", 4 | "sourceColumn": "CalendarQuarter", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Calendar Semester.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Calendar Semester", 3 | "dataType": "int64", 4 | "sourceColumn": "CalendarSemester", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Calendar Year.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Calendar Year", 3 | "dataType": "int64", 4 | "sourceColumn": "CalendarYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Date", 3 | "dataType": "dateTime", 4 | "isKey": true, 5 | "sourceColumn": "FullDateAlternateKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/DateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "DateKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Day Name Of Week.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Day Name Of Week", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishDayNameOfWeek", 5 | "sortByColumn": "Day Number Of Week", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Day Number Of Week.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Day Number Of Week", 3 | "dataType": "int64", 4 | "sourceColumn": "DayNumberOfWeek", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Day Of Month.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Day Of Month", 3 | "dataType": "int64", 4 | "sourceColumn": "DayNumberOfMonth", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Day Of Year.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Day Of Year", 3 | "dataType": "int64", 4 | "sourceColumn": "DayNumberOfYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Fiscal Quarter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fiscal Quarter", 3 | "dataType": "int64", 4 | "sourceColumn": "FiscalQuarter", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Fiscal Semester.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fiscal Semester", 3 | "dataType": "int64", 4 | "sourceColumn": "FiscalSemester", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Fiscal Year.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fiscal Year", 3 | "dataType": "int64", 4 | "sourceColumn": "FiscalYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Month Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Month Name", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishMonthName", 5 | "sortByColumn": "Month", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Month.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Month", 3 | "dataType": "int64", 4 | "sourceColumn": "MonthNumberOfYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isNullable": false, 8 | "attributeHierarchy": {} 9 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/columns/Week Of Year.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Week Of Year", 3 | "dataType": "int64", 4 | "sourceColumn": "WeekNumberOfYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/hierarchies/Calendar.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Calendar", 3 | "levels": [ 4 | { 5 | "name": "Year", 6 | "ordinal": 0, 7 | "column": "Calendar Year" 8 | }, 9 | { 10 | "name": "Semester", 11 | "ordinal": 1, 12 | "column": "Calendar Semester" 13 | }, 14 | { 15 | "name": "Quarter", 16 | "ordinal": 2, 17 | "column": "Calendar Quarter" 18 | }, 19 | { 20 | "name": "Month", 21 | "ordinal": 3, 22 | "column": "Month Name" 23 | }, 24 | { 25 | "name": "Day", 26 | "ordinal": 4, 27 | "column": "Day Of Month" 28 | } 29 | ], 30 | "annotations": [ 31 | { 32 | "name": "TabularEditor_InPerspective", 33 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/hierarchies/Fiscal.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fiscal", 3 | "levels": [ 4 | { 5 | "name": "Month", 6 | "ordinal": 3, 7 | "column": "Month Name" 8 | }, 9 | { 10 | "name": "Day", 11 | "ordinal": 4, 12 | "column": "Day Of Month" 13 | }, 14 | { 15 | "name": "Fiscal Year", 16 | "ordinal": 0, 17 | "column": "Fiscal Year" 18 | }, 19 | { 20 | "name": "Fiscal Semester", 21 | "ordinal": 1, 22 | "column": "Fiscal Semester" 23 | }, 24 | { 25 | "name": "Fiscal Quarter", 26 | "ordinal": 2, 27 | "column": "Fiscal Quarter" 28 | } 29 | ], 30 | "annotations": [ 31 | { 32 | "name": "TabularEditor_InPerspective", 33 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/hierarchies/Production Calendar.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Production Calendar", 3 | "levels": [ 4 | { 5 | "name": "Year", 6 | "ordinal": 0, 7 | "column": "Calendar Year" 8 | }, 9 | { 10 | "name": "Week", 11 | "ordinal": 1, 12 | "column": "Week Of Year" 13 | }, 14 | { 15 | "name": "Week Day", 16 | "ordinal": 2, 17 | "column": "Day Name Of Week" 18 | } 19 | ], 20 | "annotations": [ 21 | { 22 | "name": "TabularEditor_InPerspective", 23 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/measures/Days In Current Quarter to Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Days In Current Quarter to Date", 3 | "expression": "COUNTROWS( DATESQTD( 'Date'[Date] ) )", 4 | "annotations": [ 5 | { 6 | "name": "TabularEditor_InPerspective", 7 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/measures/Days In Current Quarter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Days In Current Quarter", 3 | "expression": "COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE( 'Date'[Date] ) ), ENDOFQUARTER( 'Date'[Date] ) ) )", 4 | "annotations": [ 5 | { 6 | "name": "TabularEditor_InPerspective", 7 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Date/partitions/Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Date", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimDate].* \t\tFROM [dbo].[DimDate]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "TableWidgetSerialization" 11 | }, 12 | { 13 | "name": "QueryEditorSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/Employee.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Employee", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_DbSchemaName", 6 | "value": "dbo" 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimEmployee" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_QueryDefinition", 14 | "value": " SELECT [dbo].[DimEmployee].* FROM [dbo].[DimEmployee] " 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Employee\",", 26 | " \"fromColumn\": \"SalesTerritoryKey\",", 27 | " \"toTable\": \"Sales Territory\",", 28 | " \"toColumn\": \"SalesTerritoryKey\",", 29 | " \"isActive\": false", 30 | " }", 31 | "]" 32 | ] 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Base Rate.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Base Rate", 3 | "dataType": "decimal", 4 | "sourceColumn": "BaseRate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Reseller Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Birth Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Birth Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "BirthDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Department Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Department Name", 3 | "dataType": "string", 4 | "sourceColumn": "DepartmentName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Email.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Email", 3 | "dataType": "string", 4 | "sourceColumn": "EmailAddress", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Emergency Contact Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Emergency Contact Name", 3 | "dataType": "string", 4 | "sourceColumn": "EmergencyContactName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Emergency Contact Phone.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Emergency Contact Phone", 3 | "dataType": "string", 4 | "sourceColumn": "EmergencyContactPhone", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Employee Id.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Employee Id", 3 | "dataType": "string", 4 | "sourceColumn": "EmployeeNationalIDAlternateKey", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Employee Photo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Employee Photo", 3 | "dataType": "binary", 4 | "sourceColumn": "EmployeePhoto", 5 | "isDefaultImage": true, 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/EmployeeKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EmployeeKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "EmployeeKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/End Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "End Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "EndDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/First Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "First Name", 3 | "dataType": "string", 4 | "sourceColumn": "FirstName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Gender.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Gender", 3 | "dataType": "string", 4 | "sourceColumn": "Gender", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Hire Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Hire Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "HireDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Is Current.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Is Current", 3 | "dataType": "boolean", 4 | "sourceColumn": "CurrentFlag", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Is Salaried.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Is Salaried", 3 | "dataType": "boolean", 4 | "sourceColumn": "SalariedFlag", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Is Sales Person.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Is Sales Person", 3 | "dataType": "boolean", 4 | "sourceColumn": "SalesPersonFlag", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Last Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Last Name", 3 | "dataType": "string", 4 | "sourceColumn": "LastName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Login.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Login", 3 | "dataType": "string", 4 | "sourceColumn": "LoginID", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Marital Status.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Marital Status", 3 | "dataType": "string", 4 | "sourceColumn": "MaritalStatus", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Middle Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Middle Name", 3 | "dataType": "string", 4 | "sourceColumn": "MiddleName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/NameStyle.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NameStyle", 3 | "dataType": "boolean", 4 | "sourceColumn": "NameStyle", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/ParentEmployeeKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ParentEmployeeKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ParentEmployeeKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Pay Frequency.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Pay Frequency", 3 | "dataType": "int64", 4 | "sourceColumn": "PayFrequency", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Phone.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Phone", 3 | "dataType": "string", 4 | "sourceColumn": "Phone", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/SalesTerritoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SalesTerritoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "SalesTerritoryKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Sick Leave Hours.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sick Leave Hours", 3 | "dataType": "int64", 4 | "sourceColumn": "SickLeaveHours", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Start Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Start Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "StartDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Status.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Status", 3 | "dataType": "string", 4 | "sourceColumn": "Status", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Title.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Title", 3 | "dataType": "string", 4 | "sourceColumn": "Title", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/columns/Vacation Hours.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Vacation Hours", 3 | "dataType": "int64", 4 | "sourceColumn": "VacationHours", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Employee/partitions/Employee.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Employee", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimEmployee].* \t\tFROM [dbo].[DimEmployee]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "QueryEditorSerialization" 11 | }, 12 | { 13 | "name": "TableWidgetSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/Geography.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Geography", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_QueryDefinition", 6 | "value": " SELECT [dbo].[DimGeography].* FROM [dbo].[DimGeography] " 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimGeography" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_DbSchemaName", 14 | "value": "dbo" 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Geography\",", 26 | " \"fromColumn\": \"SalesTerritoryKey\",", 27 | " \"toTable\": \"Sales Territory\",", 28 | " \"toColumn\": \"SalesTerritoryKey\",", 29 | " \"isActive\": false", 30 | " }", 31 | "]" 32 | ] 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/City.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "City", 3 | "dataType": "string", 4 | "sourceColumn": "City", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/Country Region Code.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Country Region Code", 3 | "dataType": "string", 4 | "sourceColumn": "CountryRegionCode", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/Country Region Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Country Region Name", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishCountryRegionName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/GeographyKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "GeographyKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "GeographyKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/Postal Code.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Postal Code", 3 | "dataType": "string", 4 | "sourceColumn": "PostalCode", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/SalesTerritoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SalesTerritoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "SalesTerritoryKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/State Province Code.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "State Province Code", 3 | "dataType": "string", 4 | "sourceColumn": "StateProvinceCode", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/columns/State Province Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "State Province Name", 3 | "dataType": "string", 4 | "sourceColumn": "StateProvinceName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/hierarchies/Geography.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Geography", 3 | "levels": [ 4 | { 5 | "name": "Country Region", 6 | "ordinal": 0, 7 | "column": "Country Region Name" 8 | }, 9 | { 10 | "name": "State Province", 11 | "ordinal": 1, 12 | "column": "State Province Name" 13 | }, 14 | { 15 | "name": "City", 16 | "ordinal": 2, 17 | "column": "City" 18 | } 19 | ], 20 | "annotations": [ 21 | { 22 | "name": "TabularEditor_InPerspective", 23 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Geography/partitions/Geography.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Geography", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimGeography].* \t\tFROM [dbo].[DimGeography]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "TableWidgetSerialization" 11 | }, 12 | { 13 | "name": "QueryEditorSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/Internet Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Sales", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_QueryDefinition", 6 | "value": " SELECT [dbo].[FactInternetSales].* FROM [dbo].[FactInternetSales] " 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "FactInternetSales" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_DbSchemaName", 14 | "value": "dbo" 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Internet Sales\",", 26 | " \"fromColumn\": \"CurrencyKey\",", 27 | " \"toTable\": \"Currency\",", 28 | " \"toColumn\": \"CurrencyKey\"", 29 | " },", 30 | " {", 31 | " \"fromTable\": \"Internet Sales\",", 32 | " \"fromColumn\": \"CustomerKey\",", 33 | " \"toTable\": \"Customer\",", 34 | " \"toColumn\": \"CustomerKey\"", 35 | " },", 36 | " {", 37 | " \"fromTable\": \"Internet Sales\",", 38 | " \"fromColumn\": \"DueDateKey\",", 39 | " \"toTable\": \"Date\",", 40 | " \"toColumn\": \"DateKey\",", 41 | " \"isActive\": false", 42 | " },", 43 | " {", 44 | " \"fromTable\": \"Internet Sales\",", 45 | " \"fromColumn\": \"OrderDateKey\",", 46 | " \"toTable\": \"Date\",", 47 | " \"toColumn\": \"DateKey\"", 48 | " },", 49 | " {", 50 | " \"fromTable\": \"Internet Sales\",", 51 | " \"fromColumn\": \"ProductKey\",", 52 | " \"toTable\": \"Product\",", 53 | " \"toColumn\": \"ProductKey\"", 54 | " },", 55 | " {", 56 | " \"fromTable\": \"Internet Sales\",", 57 | " \"fromColumn\": \"PromotionKey\",", 58 | " \"toTable\": \"Promotion\",", 59 | " \"toColumn\": \"PromotionKey\"", 60 | " },", 61 | " {", 62 | " \"fromTable\": \"Internet Sales\",", 63 | " \"fromColumn\": \"SalesTerritoryKey\",", 64 | " \"toTable\": \"Sales Territory\",", 65 | " \"toColumn\": \"SalesTerritoryKey\"", 66 | " },", 67 | " {", 68 | " \"fromTable\": \"Internet Sales\",", 69 | " \"fromColumn\": \"ShipDateKey\",", 70 | " \"toTable\": \"Date\",", 71 | " \"toColumn\": \"DateKey\",", 72 | " \"isActive\": false", 73 | " }", 74 | "]" 75 | ] 76 | } 77 | ] 78 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Carrier Tracking Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Carrier Tracking Number", 3 | "dataType": "string", 4 | "sourceColumn": "CarrierTrackingNumber", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/CurrencyKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CurrencyKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "CurrencyKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Customer PO Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Customer PO Number", 3 | "dataType": "string", 4 | "sourceColumn": "CustomerPONumber", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/CustomerKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CustomerKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "CustomerKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Discount Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Discount Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "DiscountAmount", 5 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Due Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Due Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "DueDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/DueDateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DueDateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "DueDateKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Extended Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Extended Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "ExtendedAmount", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Freight.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Freight", 3 | "dataType": "decimal", 4 | "sourceColumn": "Freight", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Gross Profit", 4 | "dataType": "decimal", 5 | "isDataTypeInferred": true, 6 | "expression": "'Internet Sales'[Sales Amount] - 'Internet Sales'[Total Product Cost]", 7 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 8 | "attributeHierarchy": {}, 9 | "annotations": [ 10 | { 11 | "name": "Format", 12 | "value": "" 13 | }, 14 | { 15 | "name": "TabularEditor_InPerspective", 16 | "value": "[\"Internet Operation\"]" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Order Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Order Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "OrderDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Order Quantity.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Order Quantity", 3 | "dataType": "int64", 4 | "sourceColumn": "OrderQuantity", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/OrderDateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "OrderDateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "OrderDateKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Product Standard Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Standard Cost", 3 | "dataType": "decimal", 4 | "sourceColumn": "ProductStandardCost", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/ProductKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/PromotionKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PromotionKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "PromotionKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Revision Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Revision Number", 3 | "dataType": "int64", 4 | "sourceColumn": "RevisionNumber", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Sales Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "SalesAmount", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Sales Order Line Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Order Line Number", 3 | "dataType": "int64", 4 | "sourceColumn": "SalesOrderLineNumber", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Sales Order Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Order Number", 3 | "dataType": "string", 4 | "sourceColumn": "SalesOrderNumber", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/SalesTerritoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SalesTerritoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "SalesTerritoryKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Ship Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Ship Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "ShipDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/ShipDateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ShipDateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ShipDateKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Tax Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Tax Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "TaxAmt", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Total Product Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Product Cost", 3 | "dataType": "decimal", 4 | "sourceColumn": "TotalProductCost", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Unit Price Discount Pct.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unit Price Discount Pct", 3 | "dataType": "double", 4 | "sourceColumn": "UnitPriceDiscountPct", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/columns/Unit Price.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unit Price", 3 | "dataType": "decimal", 4 | "sourceColumn": "UnitPrice", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Current Quarter Gross Profit Performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Current Quarter Gross Profit Performance", 3 | "expression": [ 4 | "IF(", 5 | " [Internet Previous Quarter Gross Profit Proportion to QTD] <> 0,", 6 | " ( [Current Quarter Gross Profit] - [Internet Previous Quarter Gross Profit Proportion to QTD] )", 7 | " / [Internet Previous Quarter Gross Profit Proportion to QTD],", 8 | " BLANK( )", 9 | ")" 10 | ], 11 | "displayFolder": "Current Quarter", 12 | "kpi": { 13 | "targetExpression": "1.25", 14 | "statusGraphic": "Three Symbols UnCircled Colored", 15 | "statusExpression": [ 16 | "IF(", 17 | " ISBLANK( [Current Quarter Gross Profit Performance] ),", 18 | " BLANK( ),", 19 | " IF(", 20 | " [Current Quarter Gross Profit Performance] < 0.8,", 21 | " -1,", 22 | " IF( [Current Quarter Gross Profit Performance] < 1.03, 0, 1 )", 23 | " )", 24 | ")" 25 | ], 26 | "annotations": [ 27 | { 28 | "name": "GoalType", 29 | "value": "StaticValue" 30 | }, 31 | { 32 | "name": "KpiStatusType", 33 | "value": "Linear" 34 | }, 35 | { 36 | "name": "KpiThresholdType", 37 | "value": "Absolute" 38 | }, 39 | { 40 | "name": "KpiThresholdOrdering", 41 | "value": "Ascending" 42 | }, 43 | { 44 | "name": "KpiThresholdCount", 45 | "value": "2" 46 | }, 47 | { 48 | "name": "KpiThreshold_0", 49 | "value": "0.8" 50 | }, 51 | { 52 | "name": "KpiThreshold_1", 53 | "value": "1.03" 54 | } 55 | ] 56 | }, 57 | "annotations": [ 58 | { 59 | "name": "TabularEditor_InPerspective", 60 | "value": "[\"Internet Operation\"]" 61 | } 62 | ] 63 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Current Quarter Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Current Quarter Gross Profit", 3 | "expression": "TOTALQTD( [Internet Total Gross Profit], 'Date'[Date] ) * 0.5", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "displayFolder": "Current Quarter", 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Current Quarter Sales Performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Current Quarter Sales Performance", 3 | "expression": "IFERROR( [Current Quarter Sales] / [Internet Previous Quarter Sales Proportion to QTD], BLANK( ) )", 4 | "displayFolder": "Current Quarter", 5 | "kpi": { 6 | "targetExpression": "1.1", 7 | "statusGraphic": "Three Symbols UnCircled Colored", 8 | "statusExpression": [ 9 | "IF(", 10 | " ISBLANK( [Current Quarter Sales Performance] ),", 11 | " BLANK( ),", 12 | " IF(", 13 | " [Current Quarter Sales Performance] < 1,", 14 | " -1,", 15 | " IF( [Current Quarter Sales Performance] < 1.07, 0, 1 )", 16 | " )", 17 | ")" 18 | ], 19 | "annotations": [ 20 | { 21 | "name": "GoalType", 22 | "value": "StaticValue" 23 | }, 24 | { 25 | "name": "KpiStatusType", 26 | "value": "Linear" 27 | }, 28 | { 29 | "name": "KpiThresholdType", 30 | "value": "Absolute" 31 | }, 32 | { 33 | "name": "KpiThresholdOrdering", 34 | "value": "Ascending" 35 | }, 36 | { 37 | "name": "KpiThresholdCount", 38 | "value": "2" 39 | }, 40 | { 41 | "name": "KpiThreshold_0", 42 | "value": "1" 43 | }, 44 | { 45 | "name": "KpiThreshold_1", 46 | "value": "1.07" 47 | } 48 | ] 49 | }, 50 | "annotations": [ 51 | { 52 | "name": "TabularEditor_InPerspective", 53 | "value": "[\"Internet Operation\"]" 54 | } 55 | ] 56 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Current Quarter Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Current Quarter Sales", 3 | "description": "Test", 4 | "expression": "TOTALQTD( [Internet Total Sales], 'Date'[Date] )", 5 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 6 | "displayFolder": "Current Quarter", 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Distinct Count Sales Order.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Distinct Count Sales Order", 3 | "expression": "DISTINCTCOUNT( 'Internet Sales'[Sales Order Number] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Internet Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Order Lines Count.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Order Lines Count", 3 | "expression": "COUNT( 'Internet Sales'[Sales Order Line Number] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Internet Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Previous Quarter Gross Profit Proportion to QTD.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Previous Quarter Gross Profit Proportion to QTD", 3 | "expression": "[Internet Previous Quarter Gross Profit] * ( [Days In Current Quarter to Date] / [Days In Current Quarter] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "displayFolder": "Internet Previous Quarter", 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Previous Quarter Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Previous Quarter Gross Profit", 3 | "expression": "CALCULATE( [Internet Total Gross Profit], PREVIOUSQUARTER( 'Date'[Date] ) )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "displayFolder": "Internet Previous Quarter", 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Previous Quarter Sales Proportion to QTD.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Previous Quarter Sales Proportion to QTD", 3 | "expression": "[Internet Previous Quarter Sales] * ( [Days In Current Quarter] / [Days In Current Quarter] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "displayFolder": "Internet Previous Quarter", 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Previous Quarter Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Previous Quarter Sales", 3 | "expression": "CALCULATE( [Internet Total Sales], PREVIOUSQUARTER( 'Date'[Date] ) )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "displayFolder": "Internet Previous Quarter", 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Internet Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Total Discount Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Total Discount Amount", 3 | "expression": "SUM( 'Internet Sales'[Discount Amount] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Total Freight.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Total Freight", 3 | "expression": "SUM( 'Internet Sales'[Freight] ) * 2", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Total Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Total Gross Profit", 3 | "expression": "SUM( 'Internet Sales'[Gross Profit] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Total Product Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Total Product Cost", 3 | "expression": "SUM( 'Internet Sales'[Total Product Cost] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Total Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Total Sales", 3 | "expression": "SUM( 'Internet Sales'[Sales Amount] ) * 1.1", 4 | "annotations": [ 5 | { 6 | "name": "TabularEditor_InPerspective", 7 | "value": "[\"Internet Operation\"]" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Total Tax Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Total Tax Amount", 3 | "expression": "SUM( 'Internet Sales'[Tax Amount] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Internet Sales/measures/Internet Total Units.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Internet Total Units", 3 | "expression": "SUM( 'Internet Sales'[Order Quantity] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Internet Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Category/Product Category.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Category", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_QueryDefinition", 6 | "value": " SELECT [dbo].[DimProductCategory].* FROM [dbo].[DimProductCategory] " 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimProductCategory" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_DbSchemaName", 14 | "value": "dbo" 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": "[]" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Category/columns/Product Category Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Category Name", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishProductCategoryName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Category/columns/ProductCategoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductCategoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductCategoryKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Category/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Category/partitions/Product Category.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Category", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimProductCategory].* \t\tFROM [dbo].[DimProductCategory]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "TableWidgetSerialization" 11 | }, 12 | { 13 | "name": "QueryEditorSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/Product Inventory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Inventory", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_DbSchemaName", 6 | "value": "dbo" 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "FactProductInventory" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_QueryDefinition", 14 | "value": " SELECT [dbo].[FactProductInventory].* FROM [dbo].[FactProductInventory] " 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Inventory\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Product Inventory\",", 26 | " \"fromColumn\": \"DateKey\",", 27 | " \"toTable\": \"Date\",", 28 | " \"toColumn\": \"DateKey\"", 29 | " },", 30 | " {", 31 | " \"fromTable\": \"Product Inventory\",", 32 | " \"fromColumn\": \"ProductKey\",", 33 | " \"toTable\": \"Product\",", 34 | " \"toColumn\": \"ProductKey\"", 35 | " }", 36 | "]" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/DateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "DateKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Inventory\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Movement Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Movement Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "MovementDate", 5 | "formatString": "Short Date", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Inventory\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Product-Date Inventory Value.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product-Date Inventory Value", 4 | "dataType": "decimal", 5 | "isDataTypeInferred": true, 6 | "expression": "'Product Inventory'[Unit Cost] * 'Product Inventory'[Units Balance]", 7 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 8 | "attributeHierarchy": {}, 9 | "annotations": [ 10 | { 11 | "name": "Format", 12 | "value": "" 13 | }, 14 | { 15 | "name": "TabularEditor_InPerspective", 16 | "value": "[\"Inventory\"]" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Product-Date Max Inventory Value.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product-Date Max Inventory Value", 4 | "dataType": "decimal", 5 | "isDataTypeInferred": true, 6 | "expression": "'Product Inventory'[Unit Cost] * RELATED( Product[Safety Stock Level] )", 7 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 8 | "attributeHierarchy": {}, 9 | "annotations": [ 10 | { 11 | "name": "Format", 12 | "value": "" 13 | }, 14 | { 15 | "name": "TabularEditor_InPerspective", 16 | "value": "[\"Inventory\"]" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Product-Date Negative Stock.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product-Date Negative Stock", 4 | "dataType": "int64", 5 | "isDataTypeInferred": true, 6 | "expression": "IF( 'Product Inventory'[Units Balance] < 0, 1, 0 )", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Inventory\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Product-Date Optimal Inventory Value.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product-Date Optimal Inventory Value", 4 | "dataType": "decimal", 5 | "isDataTypeInferred": true, 6 | "expression": "'Product Inventory'[Unit Cost] * RELATED( Product[Reorder Point] )", 7 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 8 | "attributeHierarchy": {}, 9 | "annotations": [ 10 | { 11 | "name": "Format", 12 | "value": "" 13 | }, 14 | { 15 | "name": "TabularEditor_InPerspective", 16 | "value": "[\"Inventory\"]" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Product-Date OverStocked.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product-Date OverStocked", 4 | "dataType": "int64", 5 | "isDataTypeInferred": true, 6 | "expression": "IF( 'Product Inventory'[Units Balance] > RELATED( Product[Safety Stock Level] ), 1, 0 )", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Inventory\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Product-Date UnderStocked.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product-Date UnderStocked", 4 | "dataType": "int64", 5 | "isDataTypeInferred": true, 6 | "expression": "IF( 'Product Inventory'[Units Balance] < RELATED( Product[Reorder Point] ), 1, 0 )", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Inventory\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/ProductKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Inventory\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Unit Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unit Cost", 3 | "dataType": "decimal", 4 | "sourceColumn": "UnitCost", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Inventory\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Units Balance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Units Balance", 3 | "dataType": "int64", 4 | "sourceColumn": "UnitsBalance", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Inventory\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Units In.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Units In", 3 | "dataType": "int64", 4 | "sourceColumn": "UnitsIn", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Inventory\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/columns/Units Out.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Units Out", 3 | "dataType": "int64", 4 | "sourceColumn": "UnitsOut", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Inventory\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Products OverStocked.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Products OverStocked", 3 | "expression": "CALCULATE( SUM( 'Product Inventory'[Product-Date OverStocked] ), LASTDATE( 'Product Inventory'[Movement Date] ) )", 4 | "kpi": { 5 | "targetExpression": "0", 6 | "statusGraphic": "Three Symbols UnCircled Colored", 7 | "statusExpression": [ 8 | "IF(", 9 | " ISBLANK( [Products OverStocked] ),", 10 | " BLANK( ),", 11 | " IF( [Products OverStocked] < 1, 1, IF( [Products OverStocked] < 5, 0, -1 ) )", 12 | ")" 13 | ], 14 | "annotations": [ 15 | { 16 | "name": "GoalType", 17 | "value": "StaticValue" 18 | }, 19 | { 20 | "name": "KpiStatusType", 21 | "value": "LinearReversed" 22 | }, 23 | { 24 | "name": "KpiThresholdType", 25 | "value": "Absolute" 26 | }, 27 | { 28 | "name": "KpiThresholdOrdering", 29 | "value": "Ascending" 30 | }, 31 | { 32 | "name": "KpiThresholdCount", 33 | "value": "2" 34 | }, 35 | { 36 | "name": "KpiThreshold_0", 37 | "value": "1" 38 | }, 39 | { 40 | "name": "KpiThreshold_1", 41 | "value": "5" 42 | } 43 | ] 44 | }, 45 | "annotations": [ 46 | { 47 | "name": "TabularEditor_InPerspective", 48 | "value": "[\"Inventory\"]" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Products UnderStocked.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Products UnderStocked", 3 | "expression": "CALCULATE( SUM( 'Product Inventory'[Product-Date UnderStocked] ), LASTDATE( 'Product Inventory'[Movement Date] ) )", 4 | "kpi": { 5 | "targetExpression": "0", 6 | "statusGraphic": "Three Symbols UnCircled Colored", 7 | "statusExpression": [ 8 | "IF(", 9 | " ISBLANK( [Products UnderStocked] ),", 10 | " BLANK( ),", 11 | " IF( [Products UnderStocked] < 5, 1, IF( [Products UnderStocked] < 15, 0, -1 ) )", 12 | ")" 13 | ], 14 | "annotations": [ 15 | { 16 | "name": "GoalType", 17 | "value": "StaticValue" 18 | }, 19 | { 20 | "name": "KpiStatusType", 21 | "value": "LinearReversed" 22 | }, 23 | { 24 | "name": "KpiThresholdType", 25 | "value": "Absolute" 26 | }, 27 | { 28 | "name": "KpiThresholdOrdering", 29 | "value": "Ascending" 30 | }, 31 | { 32 | "name": "KpiThresholdCount", 33 | "value": "2" 34 | }, 35 | { 36 | "name": "KpiThreshold_0", 37 | "value": "5" 38 | }, 39 | { 40 | "name": "KpiThreshold_1", 41 | "value": "15" 42 | } 43 | ] 44 | }, 45 | "annotations": [ 46 | { 47 | "name": "TabularEditor_InPerspective", 48 | "value": "[\"Inventory\"]" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Products with Negative Stock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Products with Negative Stock", 3 | "expression": "CALCULATE( SUM( 'Product Inventory'[Product-Date Negative Stock] ), LASTDATE( 'Product Inventory'[Movement Date] ) )", 4 | "kpi": { 5 | "targetExpression": "0", 6 | "statusGraphic": "Three Symbols UnCircled Colored", 7 | "statusExpression": [ 8 | "IF(", 9 | " ISBLANK( [Products with Negative Stock] ),", 10 | " BLANK( ),", 11 | " IF( [Products with Negative Stock] < 0.1, 1, IF( [Products with Negative Stock] < 5, 0, -1 ) )", 12 | ")" 13 | ], 14 | "annotations": [ 15 | { 16 | "name": "GoalType", 17 | "value": "StaticValue" 18 | }, 19 | { 20 | "name": "KpiStatusType", 21 | "value": "LinearReversed" 22 | }, 23 | { 24 | "name": "KpiThresholdType", 25 | "value": "Absolute" 26 | }, 27 | { 28 | "name": "KpiThresholdOrdering", 29 | "value": "Ascending" 30 | }, 31 | { 32 | "name": "KpiThresholdCount", 33 | "value": "2" 34 | }, 35 | { 36 | "name": "KpiThreshold_0", 37 | "value": "0.1" 38 | }, 39 | { 40 | "name": "KpiThreshold_1", 41 | "value": "5" 42 | } 43 | ] 44 | }, 45 | "annotations": [ 46 | { 47 | "name": "TabularEditor_InPerspective", 48 | "value": "[\"Inventory\"]" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Inventory Maximum Value.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Inventory Maximum Value", 3 | "expression": [ 4 | "CALCULATE(", 5 | " SUM( 'Product Inventory'[Product-Date Max Inventory Value] ),", 6 | " LASTDATE( 'Product Inventory'[Movement Date] )", 7 | ")" 8 | ], 9 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 10 | "annotations": [ 11 | { 12 | "name": "Format", 13 | "value": "" 14 | }, 15 | { 16 | "name": "TabularEditor_InPerspective", 17 | "value": "[\"Inventory\"]" 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Inventory Optimal Value.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Inventory Optimal Value", 3 | "expression": [ 4 | "CALCULATE(", 5 | " SUM( 'Product Inventory'[Product-Date Optimal Inventory Value] ),", 6 | " LASTDATE( 'Product Inventory'[Movement Date] )", 7 | ")" 8 | ], 9 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 10 | "annotations": [ 11 | { 12 | "name": "Format", 13 | "value": "" 14 | }, 15 | { 16 | "name": "TabularEditor_InPerspective", 17 | "value": "[\"Inventory\"]" 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Inventory Value Performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Inventory Value Performance", 3 | "expression": [ 4 | "IF(", 5 | " [Total Inventory Value] < [Total Inventory Optimal Value],", 6 | " -( 1 - ( [Total Inventory Value] / [Total Inventory Optimal Value] ) ),", 7 | " ( [Total Inventory Value] - [Total Inventory Optimal Value] )", 8 | " / ( [Total Inventory Maximum Value] - [Total Inventory Optimal Value] )", 9 | ")" 10 | ], 11 | "kpi": { 12 | "targetExpression": "0", 13 | "statusGraphic": "Three Symbols UnCircled Colored", 14 | "statusExpression": [ 15 | "IF(", 16 | " ISBLANK( [Total Inventory Value Performance] ),", 17 | " BLANK( ),", 18 | " IF(", 19 | " [Total Inventory Value Performance] < 0,", 20 | " IF( [Total Inventory Value Performance] < -0.2, -1, 0 ),", 21 | " IF( [Total Inventory Value Performance] < 0.6, 1, IF( [Total Inventory Value Performance] < 1, 0, -1 ) )", 22 | " )", 23 | ")" 24 | ], 25 | "annotations": [ 26 | { 27 | "name": "GoalType", 28 | "value": "StaticValue" 29 | }, 30 | { 31 | "name": "KpiStatusType", 32 | "value": "Centered" 33 | }, 34 | { 35 | "name": "KpiThresholdType", 36 | "value": "Absolute" 37 | }, 38 | { 39 | "name": "KpiThresholdOrdering", 40 | "value": "Ascending" 41 | }, 42 | { 43 | "name": "KpiThresholdCount", 44 | "value": "4" 45 | }, 46 | { 47 | "name": "KpiThreshold_0", 48 | "value": "-0.2" 49 | }, 50 | { 51 | "name": "KpiThreshold_1", 52 | "value": "0" 53 | }, 54 | { 55 | "name": "KpiThreshold_2", 56 | "value": "0.6" 57 | }, 58 | { 59 | "name": "KpiThreshold_3", 60 | "value": "1" 61 | } 62 | ] 63 | }, 64 | "annotations": [ 65 | { 66 | "name": "TabularEditor_InPerspective", 67 | "value": "[\"Inventory\"]" 68 | } 69 | ] 70 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Inventory Value.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Inventory Value", 3 | "expression": "CALCULATE( SUM( 'Product Inventory'[Product-Date Inventory Value] ), LASTDATE( 'Product Inventory'[Movement Date] ) )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Inventory\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Units In.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Units In", 3 | "expression": "SUM( 'Product Inventory'[Units In] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Inventory\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Units Movement.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Units Movement", 3 | "expression": "[Total Units In] - [Total Units Out]", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Inventory\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Units Out.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Units Out", 3 | "expression": "SUM( 'Product Inventory'[Units Out] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Inventory\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Inventory/measures/Total Units.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Units", 3 | "expression": "CALCULATE( SUM( 'Product Inventory'[Units Balance] ), LASTDATE( 'Product Inventory'[Movement Date] ) )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Inventory\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Subcategory/Product Subcategory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Subcategory", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_QueryDefinition", 6 | "value": " SELECT [dbo].[DimProductSubcategory].* FROM [dbo].[DimProductSubcategory] " 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimProductSubcategory" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_DbSchemaName", 14 | "value": "dbo" 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Product Subcategory\",", 26 | " \"fromColumn\": \"ProductCategoryKey\",", 27 | " \"toTable\": \"Product Category\",", 28 | " \"toColumn\": \"ProductCategoryKey\"", 29 | " }", 30 | "]" 31 | ] 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Subcategory/columns/Product Subcategory Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Subcategory Name", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishProductSubcategoryName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Subcategory/columns/ProductCategoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductCategoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductCategoryKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Subcategory/columns/ProductSubcategoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductSubcategoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductSubcategoryKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Subcategory/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product Subcategory/partitions/Product Subcategory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Subcategory", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimProductSubcategory].* \t\tFROM [dbo].[DimProductSubcategory]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "TableWidgetSerialization" 11 | }, 12 | { 13 | "name": "QueryEditorSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/Product.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_QueryDefinition", 6 | "value": " SELECT [dbo].[DimProduct].* FROM [dbo].[DimProduct] " 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimProduct" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_DbSchemaName", 14 | "value": "dbo" 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Product\",", 26 | " \"fromColumn\": \"ProductSubcategoryKey\",", 27 | " \"toTable\": \"Product Subcategory\",", 28 | " \"toColumn\": \"ProductSubcategoryKey\"", 29 | " }", 30 | "]" 31 | ] 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Class.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Class", 3 | "dataType": "string", 4 | "sourceColumn": "Class", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Color.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Color", 3 | "dataType": "string", 4 | "sourceColumn": "Color", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Days To Manufacture.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Days To Manufacture", 3 | "dataType": "int64", 4 | "sourceColumn": "DaysToManufacture", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Dealer Price.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dealer Price", 3 | "dataType": "decimal", 4 | "sourceColumn": "DealerPrice", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Description.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Description", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishDescription", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Is Finished Goods.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Is Finished Goods", 3 | "dataType": "boolean", 4 | "sourceColumn": "FinishedGoodsFlag", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/LargePhoto.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LargePhoto", 3 | "dataType": "binary", 4 | "sourceColumn": "LargePhoto", 5 | "isDefaultImage": true, 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/List Price.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "List Price", 3 | "dataType": "decimal", 4 | "sourceColumn": "ListPrice", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Model Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Model Name", 3 | "dataType": "string", 4 | "sourceColumn": "ModelName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product Category Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product Category Name", 4 | "dataType": "string", 5 | "isDataTypeInferred": true, 6 | "expression": "RELATED( 'Product Category'[Product Category Name] )", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product End Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product End Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "EndDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product Id.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Id", 3 | "dataType": "string", 4 | "sourceColumn": "ProductAlternateKey", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product Line.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Line", 3 | "dataType": "string", 4 | "sourceColumn": "ProductLine", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Name", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishProductName", 5 | "isDefaultLabel": true, 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product Start Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Start Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "StartDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product Status.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Status", 3 | "dataType": "string", 4 | "sourceColumn": "Status", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Product SubCategory Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Product SubCategory Name", 4 | "dataType": "string", 5 | "isDataTypeInferred": true, 6 | "expression": "RELATED( 'Product Subcategory'[Product Subcategory Name] )", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/ProductKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/ProductSubcategoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductSubcategoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductSubcategoryKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Reorder Point.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reorder Point", 3 | "dataType": "int64", 4 | "sourceColumn": "ReorderPoint", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Safety Stock Level.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Safety Stock Level", 3 | "dataType": "int64", 4 | "sourceColumn": "SafetyStockLevel", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Size Range.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Size Range", 3 | "dataType": "string", 4 | "sourceColumn": "SizeRange", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Size Unit Code.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Size Unit Code", 3 | "dataType": "string", 4 | "sourceColumn": "SizeUnitMeasureCode", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Size.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Size", 3 | "dataType": "string", 4 | "sourceColumn": "Size", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Standard Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Standard Cost", 3 | "dataType": "decimal", 4 | "sourceColumn": "StandardCost", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Style.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Style", 3 | "dataType": "string", 4 | "sourceColumn": "Style", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Weight Unit Code.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Weight Unit Code", 3 | "dataType": "string", 4 | "sourceColumn": "WeightUnitMeasureCode", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/columns/Weight.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Weight", 3 | "dataType": "double", 4 | "sourceColumn": "Weight", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/hierarchies/Category.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Category", 3 | "levels": [ 4 | { 5 | "name": "Category", 6 | "ordinal": 0, 7 | "column": "Product Category Name" 8 | }, 9 | { 10 | "name": "SubCategory", 11 | "ordinal": 1, 12 | "column": "Product SubCategory Name" 13 | }, 14 | { 15 | "name": "Model", 16 | "ordinal": 2, 17 | "column": "Model Name" 18 | }, 19 | { 20 | "name": "Product", 21 | "ordinal": 3, 22 | "column": "Product Name" 23 | } 24 | ], 25 | "annotations": [ 26 | { 27 | "name": "TabularEditor_InPerspective", 28 | "value": "[\"Internet Operation\",\"Inventory\",\"Reseller Operation\"]" 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Product/partitions/Product.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimProduct].* \t\tFROM [dbo].[DimProduct]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "TableWidgetSerialization" 11 | }, 12 | { 13 | "name": "QueryEditorSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/Promotion.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Promotion", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_DbSchemaName", 6 | "value": "dbo" 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimPromotion" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_QueryDefinition", 14 | "value": " SELECT [dbo].[DimPromotion].* FROM [dbo].[DimPromotion] " 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": "[]" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/DiscountPct.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DiscountPct", 3 | "dataType": "double", 4 | "sourceColumn": "DiscountPct", 5 | "formatString": "0.00", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/Max Quantity.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Max Quantity", 3 | "dataType": "int64", 4 | "sourceColumn": "MaxQty", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/Min Quantity.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Min Quantity", 3 | "dataType": "int64", 4 | "sourceColumn": "MinQty", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/Promotion Category.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Promotion Category", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishPromotionCategory", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/Promotion End Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Promotion End Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "EndDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/Promotion Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Promotion Name", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishPromotionName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/Promotion Start Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Promotion Start Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "StartDate", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/Promotion Type.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Promotion Type", 3 | "dataType": "string", 4 | "sourceColumn": "EnglishPromotionType", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/PromotionKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PromotionKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "PromotionKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Promotion/partitions/Promotion.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Promotion", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimPromotion].* \t\tFROM [dbo].[DimPromotion]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "QueryEditorSerialization" 11 | }, 12 | { 13 | "name": "TableWidgetSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Carrier Tracking Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Carrier Tracking Number", 3 | "dataType": "string", 4 | "sourceColumn": "CarrierTrackingNumber", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/CurrencyKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CurrencyKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "CurrencyKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Discount Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Discount Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "DiscountAmount", 5 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Due Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Due Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "DueDate", 5 | "formatString": "Short Date", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/DueDateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DueDateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "DueDateKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/EmployeeKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EmployeeKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "EmployeeKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Extended Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Extended Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "ExtendedAmount", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Freight.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Freight", 3 | "dataType": "decimal", 4 | "sourceColumn": "Freight", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Reseller Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "calculated", 3 | "name": "Gross Profit", 4 | "dataType": "decimal", 5 | "isDataTypeInferred": true, 6 | "expression": "'Reseller Sales'[Sales Amount] - 'Reseller Sales'[Total Product Cost]", 7 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 8 | "attributeHierarchy": {}, 9 | "annotations": [ 10 | { 11 | "name": "Format", 12 | "value": "" 13 | }, 14 | { 15 | "name": "TabularEditor_InPerspective", 16 | "value": "[\"Reseller Operation\"]" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Order Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Order Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "OrderDate", 5 | "formatString": "Short Date", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Order Quantity.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Order Quantity", 3 | "dataType": "int64", 4 | "sourceColumn": "OrderQuantity", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/OrderDateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "OrderDateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "OrderDateKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Product Standard Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Standard Cost", 3 | "dataType": "decimal", 4 | "sourceColumn": "ProductStandardCost", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/ProductKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProductKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ProductKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/PromotionKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PromotionKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "PromotionKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Reseller PO Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller PO Number", 3 | "dataType": "string", 4 | "sourceColumn": "CustomerPONumber", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/ResellerKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ResellerKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ResellerKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Revision Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Revision Number", 3 | "dataType": "int64", 4 | "sourceColumn": "RevisionNumber", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Sales Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "SalesAmount", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Reseller Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Sales Order Line Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Order Line Number", 3 | "dataType": "int64", 4 | "sourceColumn": "SalesOrderLineNumber", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Sales Order Number.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Order Number", 3 | "dataType": "string", 4 | "sourceColumn": "SalesOrderNumber", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/SalesTerritoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SalesTerritoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "SalesTerritoryKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Ship Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Ship Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "ShipDate", 5 | "formatString": "Short Date", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/ShipDateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ShipDateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ShipDateKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Tax Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Tax Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "TaxAmt", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Reseller Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Total Product Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Product Cost", 3 | "dataType": "decimal", 4 | "sourceColumn": "TotalProductCost", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Reseller Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Unit Price Discount Pct.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unit Price Discount Pct", 3 | "dataType": "double", 4 | "sourceColumn": "UnitPriceDiscountPct", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/columns/Unit Price.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unit Price", 3 | "dataType": "decimal", 4 | "sourceColumn": "UnitPrice", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Current Quarter Gross Profit Performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Current Quarter Gross Profit Performance", 3 | "expression": [ 4 | "IF(", 5 | " [Reseller Previous Quarter Gross Profit Proportion to QTD] <> 0,", 6 | " ( [Reseller Current Quarter Gross Profit] - [Reseller Previous Quarter Gross Profit Proportion to QTD] )", 7 | " / [Reseller Previous Quarter Gross Profit Proportion to QTD],", 8 | " BLANK( )", 9 | ")" 10 | ], 11 | "kpi": { 12 | "targetExpression": "1.25", 13 | "statusGraphic": "Three Symbols UnCircled Colored", 14 | "statusExpression": [ 15 | "IF(", 16 | " ISBLANK( [Reseller Current Quarter Gross Profit Performance] ),", 17 | " BLANK( ),", 18 | " IF(", 19 | " [Reseller Current Quarter Gross Profit Performance] < 0.8,", 20 | " -1,", 21 | " IF( [Reseller Current Quarter Gross Profit Performance] < 1.03, 0, 1 )", 22 | " )", 23 | ")" 24 | ], 25 | "annotations": [ 26 | { 27 | "name": "GoalType", 28 | "value": "StaticValue" 29 | }, 30 | { 31 | "name": "KpiStatusType", 32 | "value": "Linear" 33 | }, 34 | { 35 | "name": "KpiThresholdType", 36 | "value": "Absolute" 37 | }, 38 | { 39 | "name": "KpiThresholdOrdering", 40 | "value": "Ascending" 41 | }, 42 | { 43 | "name": "KpiThresholdCount", 44 | "value": "2" 45 | }, 46 | { 47 | "name": "KpiThreshold_0", 48 | "value": "0.8" 49 | }, 50 | { 51 | "name": "KpiThreshold_1", 52 | "value": "1.03" 53 | } 54 | ] 55 | }, 56 | "annotations": [ 57 | { 58 | "name": "TabularEditor_InPerspective", 59 | "value": "[\"Reseller Operation\"]" 60 | } 61 | ] 62 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Current Quarter Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Current Quarter Gross Profit", 3 | "expression": "TOTALQTD( [Reseller Total Gross Profit], 'Date'[Date] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Current Quarter Sales Performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Current Quarter Sales Performance", 3 | "expression": "IFERROR( [Reseller Current Quarter Sales] / [Reseller Previous Quarter Sales Proportion to QTD], BLANK( ) )", 4 | "kpi": { 5 | "targetExpression": "1.1", 6 | "statusGraphic": "Three Symbols UnCircled Colored", 7 | "statusExpression": [ 8 | "IF(", 9 | " ISBLANK( [Reseller Current Quarter Sales Performance] ),", 10 | " BLANK( ),", 11 | " IF(", 12 | " [Reseller Current Quarter Sales Performance] < 0.8,", 13 | " -1,", 14 | " IF( [Reseller Current Quarter Sales Performance] < 1.07, 0, 1 )", 15 | " )", 16 | ")" 17 | ], 18 | "annotations": [ 19 | { 20 | "name": "GoalType", 21 | "value": "StaticValue" 22 | }, 23 | { 24 | "name": "KpiStatusType", 25 | "value": "Linear" 26 | }, 27 | { 28 | "name": "KpiThresholdType", 29 | "value": "Absolute" 30 | }, 31 | { 32 | "name": "KpiThresholdOrdering", 33 | "value": "Ascending" 34 | }, 35 | { 36 | "name": "KpiThresholdCount", 37 | "value": "2" 38 | }, 39 | { 40 | "name": "KpiThreshold_0", 41 | "value": "0.8" 42 | }, 43 | { 44 | "name": "KpiThreshold_1", 45 | "value": "1.07" 46 | } 47 | ] 48 | }, 49 | "annotations": [ 50 | { 51 | "name": "TabularEditor_InPerspective", 52 | "value": "[\"Reseller Operation\"]" 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Current Quarter Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Current Quarter Sales", 3 | "expression": "TOTALQTD( [Reseller Total Sales], 'Date'[Date] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Distinct Count Sales Order.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Distinct Count Sales Order", 3 | "expression": "DISTINCTCOUNT( 'Reseller Sales'[Sales Order Number] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Reseller Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Order Lines Count.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Order Lines Count", 3 | "expression": "COUNT( 'Reseller Sales'[Sales Order Line Number] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Reseller Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Previous Quarter Gross Profit Proportion to QTD.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Previous Quarter Gross Profit Proportion to QTD", 3 | "expression": "[Reseller Previous Quarter Gross Profit] * ( [Days In Current Quarter to Date] / [Days In Current Quarter] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Previous Quarter Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Previous Quarter Gross Profit", 3 | "expression": "CALCULATE( [Reseller Total Gross Profit], PREVIOUSQUARTER( 'Date'[Date] ) )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Previous Quarter Sales Proportion to QTD.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Previous Quarter Sales Proportion to QTD", 3 | "expression": "[Reseller Previous Quarter Sales] * ( [Days In Current Quarter to Date] / [Days In Current Quarter] )", 4 | "annotations": [ 5 | { 6 | "name": "TabularEditor_InPerspective", 7 | "value": "[\"Reseller Operation\"]" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Previous Quarter Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Previous Quarter Sales", 3 | "expression": "CALCULATE( [Reseller Total Sales], PREVIOUSQUARTER( 'Date'[Date] ) )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Discount Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Discount Amount", 3 | "expression": "SUM( 'Reseller Sales'[Discount Amount] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Freight.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Freight", 3 | "expression": "SUM( 'Reseller Sales'[Freight] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Gross Profit", 3 | "expression": "SUM( 'Reseller Sales'[Gross Profit] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Product Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Product Cost", 3 | "expression": "SUM( 'Reseller Sales'[Total Product Cost] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Sales - Sales Territory sliced by Employee.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Sales - Sales Territory sliced by Employee", 3 | "expression": [ 4 | "CALCULATE(", 5 | " SUM( 'Reseller Sales'[Sales Amount] ),", 6 | " USERELATIONSHIP( Employee[EmployeeKey], 'Reseller Sales'[EmployeeKey] ),", 7 | " USERELATIONSHIP( 'Sales Territory'[SalesTerritoryKey], Employee[SalesTerritoryKey] )", 8 | ")" 9 | ], 10 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 11 | "annotations": [ 12 | { 13 | "name": "Format", 14 | "value": "" 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Reseller Operation\"]" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Sales - Sales Territory sliced by Reseller.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Sales - Sales Territory sliced by Reseller", 3 | "expression": [ 4 | "CALCULATE(", 5 | " SUM( 'Reseller Sales'[Sales Amount] ),", 6 | " USERELATIONSHIP( Reseller[ResellerKey], 'Reseller Sales'[ResellerKey] ),", 7 | " USERELATIONSHIP( Geography[GeographyKey], Reseller[GeographyKey] ),", 8 | " USERELATIONSHIP( 'Sales Territory'[SalesTerritoryKey], Geography[SalesTerritoryKey] )", 9 | ")" 10 | ], 11 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 12 | "annotations": [ 13 | { 14 | "name": "Format", 15 | "value": "" 16 | }, 17 | { 18 | "name": "TabularEditor_InPerspective", 19 | "value": "[\"Reseller Operation\"]" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Sales", 3 | "expression": "SUM( 'Reseller Sales'[Sales Amount] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Tax Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Tax Amount", 3 | "expression": "SUM( 'Reseller Sales'[Tax Amount] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller Sales/measures/Reseller Total Units.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Total Units", 3 | "expression": "SUM( 'Reseller Sales'[Order Quantity] )", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Reseller Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/Reseller.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_DbSchemaName", 6 | "value": "dbo" 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimReseller" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_QueryDefinition", 14 | "value": " SELECT [dbo].[DimReseller].* FROM [dbo].[DimReseller] " 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Reseller\",", 26 | " \"fromColumn\": \"GeographyKey\",", 27 | " \"toTable\": \"Geography\",", 28 | " \"toColumn\": \"GeographyKey\"", 29 | " }", 30 | "]" 31 | ] 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Address Line 1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Address Line 1", 3 | "dataType": "string", 4 | "sourceColumn": "AddressLine1", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Address Line 2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Address Line 2", 3 | "dataType": "string", 4 | "sourceColumn": "AddressLine2", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Annua Revenue.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Annua Revenue", 3 | "dataType": "decimal", 4 | "sourceColumn": "AnnualRevenue", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Annual Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Annual Sales", 3 | "dataType": "decimal", 4 | "sourceColumn": "AnnualSales", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Bank Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Bank Name", 3 | "dataType": "string", 4 | "sourceColumn": "BankName", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Business Type.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Business Type", 3 | "dataType": "string", 4 | "sourceColumn": "BusinessType", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/First Order Year.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "First Order Year", 3 | "dataType": "int64", 4 | "sourceColumn": "FirstOrderYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/GeographyKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "GeographyKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "GeographyKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Last Order Year.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Last Order Year", 3 | "dataType": "int64", 4 | "sourceColumn": "LastOrderYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Min Payment Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Min Payment Amount", 3 | "dataType": "decimal", 4 | "sourceColumn": "MinPaymentAmount", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Min Payment Type.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Min Payment Type", 3 | "dataType": "int64", 4 | "sourceColumn": "MinPaymentType", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Number Employees.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Number Employees", 3 | "dataType": "int64", 4 | "sourceColumn": "NumberEmployees", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Order Frequency.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Order Frequency", 3 | "dataType": "string", 4 | "sourceColumn": "OrderFrequency", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Order Month.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Order Month", 3 | "dataType": "int64", 4 | "sourceColumn": "OrderMonth", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Product Line.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Product Line", 3 | "dataType": "string", 4 | "sourceColumn": "ProductLine", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Reseller Id.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Id", 3 | "dataType": "string", 4 | "sourceColumn": "ResellerAlternateKey", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Reseller Name.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Name", 3 | "dataType": "string", 4 | "sourceColumn": "ResellerName", 5 | "isDefaultLabel": true, 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Reseller Phone.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller Phone", 3 | "dataType": "string", 4 | "sourceColumn": "Phone", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/ResellerKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ResellerKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "ResellerKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/columns/Year Opened.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Year Opened", 3 | "dataType": "int64", 4 | "sourceColumn": "YearOpened", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Reseller/partitions/Reseller.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reseller", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimReseller].* \t\tFROM [dbo].[DimReseller]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "QueryEditorSerialization" 11 | }, 12 | { 13 | "name": "TableWidgetSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/Sales Quota.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Quota", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_DbSchemaName", 6 | "value": "dbo" 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "FactSalesQuota" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_QueryDefinition", 14 | "value": " SELECT [dbo].[FactSalesQuota].* FROM [dbo].[FactSalesQuota] " 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": [ 23 | "[", 24 | " {", 25 | " \"fromTable\": \"Sales Quota\",", 26 | " \"fromColumn\": \"DateKey\",", 27 | " \"toTable\": \"Date\",", 28 | " \"toColumn\": \"DateKey\"", 29 | " },", 30 | " {", 31 | " \"fromTable\": \"Sales Quota\",", 32 | " \"fromColumn\": \"EmployeeKey\",", 33 | " \"toTable\": \"Employee\",", 34 | " \"toColumn\": \"EmployeeKey\"", 35 | " }", 36 | "]" 37 | ] 38 | } 39 | ] 40 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/Calendar Quarter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Calendar Quarter", 3 | "dataType": "int64", 4 | "sourceColumn": "CalendarQuarter", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/Calendar Year.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Calendar Year", 3 | "dataType": "int64", 4 | "sourceColumn": "CalendarYear", 5 | "summarizeBy": "none", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/Date.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Date", 3 | "dataType": "dateTime", 4 | "sourceColumn": "Date", 5 | "formatString": "Short Date", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "Format", 10 | "value": "" 11 | }, 12 | { 13 | "name": "TabularEditor_InPerspective", 14 | "value": "[\"Reseller Operation\"]" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/DateKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DateKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "DateKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/EmployeeKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EmployeeKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "EmployeeKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/Sales Amount Quota.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Amount Quota", 3 | "dataType": "decimal", 4 | "sourceColumn": "SalesAmountQuota", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "Format", 9 | "value": "" 10 | }, 11 | { 12 | "name": "TabularEditor_InPerspective", 13 | "value": "[\"Reseller Operation\"]" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/columns/SalesQuotaKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SalesQuotaKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "SalesQuotaKey", 6 | "summarizeBy": "none", 7 | "attributeHierarchy": {}, 8 | "annotations": [ 9 | { 10 | "name": "TabularEditor_InPerspective", 11 | "value": "[\"Reseller Operation\"]" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Quota/partitions/Sales Quota.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Quota", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[FactSalesQuota].* \t\tFROM [dbo].[FactSalesQuota]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "QueryEditorSerialization" 11 | }, 12 | { 13 | "name": "TableWidgetSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/Sales Territory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Territory", 3 | "annotations": [ 4 | { 5 | "name": "_TM_ExtProp_DbSchemaName", 6 | "value": "dbo" 7 | }, 8 | { 9 | "name": "_TM_ExtProp_DbTableName", 10 | "value": "DimSalesTerritory" 11 | }, 12 | { 13 | "name": "_TM_ExtProp_QueryDefinition", 14 | "value": " SELECT [dbo].[DimSalesTerritory].* FROM [dbo].[DimSalesTerritory] " 15 | }, 16 | { 17 | "name": "TabularEditor_InPerspective", 18 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 19 | }, 20 | { 21 | "name": "TabularEditor_Relationships", 22 | "value": "[]" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/columns/RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "rowNumber", 3 | "name": "RowNumber-2662979B-1795-4F74-8F37-6A1BA8059B61", 4 | "dataType": "int64", 5 | "isHidden": true, 6 | "isUnique": true, 7 | "isKey": true, 8 | "isNullable": false, 9 | "attributeHierarchy": {} 10 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/columns/Sales Territory Country.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Territory Country", 3 | "dataType": "string", 4 | "sourceColumn": "SalesTerritoryCountry", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/columns/Sales Territory Group.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Territory Group", 3 | "dataType": "string", 4 | "sourceColumn": "SalesTerritoryGroup", 5 | "attributeHierarchy": {}, 6 | "annotations": [ 7 | { 8 | "name": "TabularEditor_InPerspective", 9 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/columns/Sales Territory Image.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Territory Image", 3 | "dataType": "binary", 4 | "sourceColumn": "SalesTerritoryImage", 5 | "isDefaultImage": true, 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/columns/Sales Territory Region.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Territory Region", 3 | "dataType": "string", 4 | "sourceColumn": "SalesTerritoryRegion", 5 | "isDefaultLabel": true, 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/columns/SalesTerritoryKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SalesTerritoryKey", 3 | "dataType": "int64", 4 | "isHidden": true, 5 | "sourceColumn": "SalesTerritoryKey", 6 | "attributeHierarchy": {}, 7 | "annotations": [ 8 | { 9 | "name": "TabularEditor_InPerspective", 10 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/hierarchies/Territory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Territory", 3 | "levels": [ 4 | { 5 | "name": "Group", 6 | "ordinal": 0, 7 | "column": "Sales Territory Group" 8 | }, 9 | { 10 | "name": "Country", 11 | "ordinal": 1, 12 | "column": "Sales Territory Country" 13 | }, 14 | { 15 | "name": "Region", 16 | "ordinal": 2, 17 | "column": "Sales Territory Region" 18 | } 19 | ], 20 | "annotations": [ 21 | { 22 | "name": "TabularEditor_InPerspective", 23 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Distinct Count Sales Orders.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Distinct Count Sales Orders", 3 | "expression": "[Reseller Distinct Count Sales Order] + [Internet Distinct Count Sales Order]", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Order Lines Count.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Order Lines Count", 3 | "expression": "[Reseller Order Lines Count] + [Internet Order Lines Count]", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Current Quarter Gross Profit Performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Current Quarter Gross Profit Performance", 3 | "expression": [ 4 | "IF(", 5 | " [Total Previous Quarter Gross Profit Proportion to QTD] <> 0,", 6 | " ( [Total Current Quarter Gross Profit] - [Total Previous Quarter Gross Profit Proportion to QTD] )", 7 | " / [Total Previous Quarter Gross Profit Proportion to QTD],", 8 | " BLANK( )", 9 | ")" 10 | ], 11 | "kpi": { 12 | "targetExpression": "1.25", 13 | "statusGraphic": "Three Symbols UnCircled Colored", 14 | "statusExpression": [ 15 | "IF(", 16 | " ISBLANK( [Total Current Quarter Gross Profit Performance] ),", 17 | " BLANK( ),", 18 | " IF(", 19 | " [Total Current Quarter Gross Profit Performance] < 0.8,", 20 | " -1,", 21 | " IF( [Total Current Quarter Gross Profit Performance] < 1.03, 0, 1 )", 22 | " )", 23 | ")" 24 | ], 25 | "annotations": [ 26 | { 27 | "name": "GoalType", 28 | "value": "StaticValue" 29 | }, 30 | { 31 | "name": "KpiStatusType", 32 | "value": "Linear" 33 | }, 34 | { 35 | "name": "KpiThresholdType", 36 | "value": "Absolute" 37 | }, 38 | { 39 | "name": "KpiThresholdOrdering", 40 | "value": "Ascending" 41 | }, 42 | { 43 | "name": "KpiThresholdCount", 44 | "value": "2" 45 | }, 46 | { 47 | "name": "KpiThreshold_0", 48 | "value": "0.8" 49 | }, 50 | { 51 | "name": "KpiThreshold_1", 52 | "value": "1.03" 53 | } 54 | ] 55 | }, 56 | "annotations": [ 57 | { 58 | "name": "TabularEditor_InPerspective", 59 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 60 | } 61 | ] 62 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Current Quarter Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Current Quarter Gross Profit", 3 | "expression": "TOTALQTD( [Total Gross Profit], 'Date'[Date] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Current Quarter Sales Performance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Current Quarter Sales Performance", 3 | "expression": "IFERROR( [Total Current Quarter Sales] / [Total Previous Quarter Sales Proportion to QTD], BLANK( ) )", 4 | "kpi": { 5 | "targetExpression": "1.1", 6 | "statusGraphic": "Three Symbols UnCircled Colored", 7 | "statusExpression": [ 8 | "IF(", 9 | " ISBLANK( [Total Current Quarter Sales Performance] ),", 10 | " BLANK( ),", 11 | " IF( [Total Current Quarter Sales Performance] < 0.8, -1, IF( [Total Current Quarter Sales Performance] < 1.07, 0, 1 ) )", 12 | ")" 13 | ], 14 | "annotations": [ 15 | { 16 | "name": "GoalType", 17 | "value": "StaticValue" 18 | }, 19 | { 20 | "name": "KpiStatusType", 21 | "value": "Linear" 22 | }, 23 | { 24 | "name": "KpiThresholdType", 25 | "value": "Absolute" 26 | }, 27 | { 28 | "name": "KpiThresholdOrdering", 29 | "value": "Ascending" 30 | }, 31 | { 32 | "name": "KpiThresholdCount", 33 | "value": "2" 34 | }, 35 | { 36 | "name": "KpiThreshold_0", 37 | "value": "0.8" 38 | }, 39 | { 40 | "name": "KpiThreshold_1", 41 | "value": "1.07" 42 | } 43 | ] 44 | }, 45 | "annotations": [ 46 | { 47 | "name": "TabularEditor_InPerspective", 48 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Current Quarter Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Current Quarter Sales", 3 | "expression": "TOTALQTD( [Total Sales], 'Date'[Date] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Discount Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Discount Amount", 3 | "expression": "[Reseller Total Discount Amount] + [Internet Total Discount Amount]", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Freight.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Freight", 3 | "expression": "[Reseller Total Freight] + [Internet Total Freight]", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Gross Profit", 3 | "expression": "[Reseller Total Gross Profit] + [Internet Total Gross Profit]", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Previous Quarter Gross Profit Proportion to QTD.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Previous Quarter Gross Profit Proportion to QTD", 3 | "expression": "[Total Previous Quarter Gross Profit] * ( [Days In Current Quarter to Date] / [Days In Current Quarter] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Previous Quarter Gross Profit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Previous Quarter Gross Profit", 3 | "expression": "CALCULATE( [Total Gross Profit], PREVIOUSQUARTER( 'Date'[Date] ) )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Previous Quarter Sales Proportion to QTD.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Previous Quarter Sales Proportion to QTD", 3 | "expression": "[Total Previous Quarter Sales] * ( [Days In Current Quarter to Date] / [Days In Current Quarter] )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Previous Quarter Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Previous Quarter Sales", 3 | "expression": "CALCULATE( [Total Sales], PREVIOUSQUARTER( 'Date'[Date] ) )", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Products Cost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Products Cost", 3 | "expression": "[Reseller Total Product Cost] + [Internet Total Product Cost]", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Sales - Sales Territory sliced by Employee.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Sales - Sales Territory sliced by Employee", 3 | "expression": "[Reseller Total Sales - Sales Territory sliced by Employee] + [Internet Total Sales]", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Sales.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Sales", 3 | "expression": "[Reseller Total Sales] + [Internet Total Sales]", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Tax Amount.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Tax Amount", 3 | "expression": "[Reseller Total Tax Amount] + [Internet Total Tax Amount]", 4 | "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00", 5 | "annotations": [ 6 | { 7 | "name": "Format", 8 | "value": "" 9 | }, 10 | { 11 | "name": "TabularEditor_InPerspective", 12 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/measures/Total Units Sold.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Total Units Sold", 3 | "expression": "[Reseller Total Units] + [Internet Total Units]", 4 | "formatString": "#,0", 5 | "annotations": [ 6 | { 7 | "name": "TabularEditor_InPerspective", 8 | "value": "[\"Internet Operation\",\"Reseller Operation\"]" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /AdventureWorks/tables/Sales Territory/partitions/Sales Territory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sales Territory", 3 | "source": { 4 | "type": "query", 5 | "query": "SELECT [dbo].[DimSalesTerritory].* \t\tFROM [dbo].[DimSalesTerritory]", 6 | "dataSource": "te3-sql-training" 7 | }, 8 | "annotations": [ 9 | { 10 | "name": "QueryEditorSerialization" 11 | }, 12 | { 13 | "name": "TableWidgetSerialization" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /PbixFiles/Customer Profitability Sample PBIX.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TabularEditor/DevOps/baa21afb94f73362aa1602221979c1fe11d82b16/PbixFiles/Customer Profitability Sample PBIX.pbix -------------------------------------------------------------------------------- /PbixFiles/Human Resources Sample PBIX.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TabularEditor/DevOps/baa21afb94f73362aa1602221979c1fe11d82b16/PbixFiles/Human Resources Sample PBIX.pbix -------------------------------------------------------------------------------- /PbixFiles/Procurement Analysis Sample PBIX.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TabularEditor/DevOps/baa21afb94f73362aa1602221979c1fe11d82b16/PbixFiles/Procurement Analysis Sample PBIX.pbix -------------------------------------------------------------------------------- /PbixFiles/Retail Analysis Sample PBIX.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TabularEditor/DevOps/baa21afb94f73362aa1602221979c1fe11d82b16/PbixFiles/Retail Analysis Sample PBIX.pbix -------------------------------------------------------------------------------- /PbixFiles/Sales and Marketing Sample PBIX.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TabularEditor/DevOps/baa21afb94f73362aa1602221979c1fe11d82b16/PbixFiles/Sales and Marketing Sample PBIX.pbix -------------------------------------------------------------------------------- /PbixFiles/Supplier-Quality-Analysis-Sample-PBIX.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TabularEditor/DevOps/baa21afb94f73362aa1602221979c1fe11d82b16/PbixFiles/Supplier-Quality-Analysis-Sample-PBIX.pbix -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DevOps 2 | This repository is used to demonstrate Tabular Editor integration with GitHub Actions for Power BI or Analysis Services CI/CD 3 | 4 | # Actions 5 | The repository contains a single [workflow](https://github.com/TabularEditor/DevOps/blob/main/.github/workflows/BuildAndValidateTabularModel.yml) which performs the following actions against the AdventureWorks model source code in the repo: 6 | 7 | 1. Uses a [PowerShell script](https://github.com/TabularEditor/DevOps/blob/main/Scripts/DownloadTE2.ps1) to Download Tabular Editor 2.x 8 | 2. Run a Best Practice Analysis 9 | 3. Run a Schema Check (i.e. checking that columns in the source SQL partitions are correctly mapped to imported column). Uses a [C# script](https://github.com/TabularEditor/DevOps/blob/main/Scripts/ReplaceDataSourceConnectionString.csx) to update the data source credentials before performing the Schema Check. 10 | 4. Deploy the model to an instance of Analysis Services (that could be SSAS, Azure AS or Power BI XMLA). 11 | 12 | # Instructions 13 | 14 | To replicate this in your own fork, you have to set up the following environment and environment variables under the GitHub repository settings: 15 | 16 | 1. An environment named "Dev" 17 | 2. One environment variable named "SQLDW_CONNECTIONSTRING". This should hold the SQLNCLI connection string to access a SQL database that holds [AdventureWorksDW2019](https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksDW2019.bak): 18 | 19 | ```connectionstring 20 | data source=;initial catalog=;persist security info=True;user id=;password= 21 | ``` 22 | 3. One environment variable named "AS_CONNECTIONSTRING" which points to the Analysis Services or Power BI workspace where you want the workflow to deploy the model. 23 | ```connectionstring 24 | Provider=MSOLAP;Data Source=;User ID=;Password= 25 | ``` 26 | To use a Service Principal, specify the following: 27 | ```connectionstring 28 | Provider=MSOLAP;Data Source=;User ID=app:@;Password=>APPLICATION SECRET> 29 | ``` 30 | 31 | # Executing the workflow 32 | 33 | The workflow has a `workflow_dispatch` event trigger, so it will have to be triggered manually from the GitHub "Actions" tab. If set up correctly, the output of the workflow should look like this, indicating succesful execution of all steps: 34 | 35 | ![image](https://user-images.githubusercontent.com/8976200/144059319-a50bb66d-ec1b-4b6e-b65b-dd003aeb503e.png) 36 | -------------------------------------------------------------------------------- /Scripts/DownloadTE2.ps1: -------------------------------------------------------------------------------- 1 | # Download URL for Tabular Editor portable: 2 | $TabularEditorUrl = "https://cdn.tabulareditor.com/files/te2/TabularEditor.Portable.zip" 3 | 4 | # Download destination (root of PowerShell script execution path): 5 | $DownloadDestination = join-path (get-location) "TabularEditor.zip" 6 | 7 | # Download from GitHub: 8 | Invoke-WebRequest -Uri $TabularEditorUrl -OutFile $DownloadDestination 9 | 10 | # Unzip Tabular Editor portable, and then delete the zip file: 11 | Expand-Archive -Path $DownloadDestination -DestinationPath (get-location).Path 12 | Remove-Item $DownloadDestination 13 | -------------------------------------------------------------------------------- /Scripts/ReplaceDataSourceConnectionString.csx: -------------------------------------------------------------------------------- 1 | var dataSource = Model.DataSources["te3-sql-training"] as ProviderDataSource; 2 | var connectionString = Environment.GetEnvironmentVariable("SQLDW_CONNECTIONSTRING"); 3 | if(string.IsNullOrEmpty(connectionString)) 4 | { 5 | Error("Environment variable SQLDW_CONNECTIONSTRING not set!"); 6 | return; 7 | } 8 | dataSource.ConnectionString = connectionString; 9 | dataSource.Provider = "System.Data.SqlClient"; 10 | --------------------------------------------------------------------------------