Coder Social home page Coder Social logo

tabulareditor / tabulareditor Goto Github PK

View Code? Open in Web Editor NEW
823.0 76.0 200.0 12.11 MB

This is the code repository and issue tracker for Tabular Editor 2.X (free, open-source version). This repository is being maintained by Daniel Otykier.

Home Page: https://tabulareditor.com

License: MIT License

ANTLR 1.48% C# 97.75% VBScript 0.04% Batchfile 0.01% HTML 0.73%
azure-analysis-services ssas-tabular winforms powerbi powerbi-desktop powerbi-service microsoft-fabric

tabulareditor's Introduction

Tabular Editor 2.x

Tabular Editor 2.x is a free, open-source, tool that lets you easily manipulate and manage measures, calculated columns, display folders, perspectives and translations in Analysis Services Tabular and Power BI XMLA Models (from Compatibility Level 1200 and onwards). The tool is written entirely in .NET WinForms (C#).

Tabular Editor 2.x, when downloaded from GitHub, is digitally signed. The certificate is kindly funded by twoday kapacity.

Looking for Tabular Editor 3?

Please visit tabulareditor.com.

Documentation

Version History

Full version history

tabulareditor's People

Contributors

albertospelta avatar benhollomon avatar dbojsen avatar dmgdotnet avatar edwardmjackson avatar fmms avatar gonsalu avatar jasonhendrix avatar msdotnetclr avatar n0ge avatar otykier avatar pfab0 avatar rbulka avatar warthurton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tabulareditor's Issues

Deployment Wizard should remember recent settings

Sometimes you need to deploy several times in a row. It would be useful if the Deployment Wizard stored all settings when you deploy, so that next time you open the wizard, it opens up on the "Summary" page, ready to deploy again.

The deployment wizard should only reset the server/database/deployment options, when a new tabular model is loaded into Tabular Editor.

Best practice analyzer with embedded rule engine

I would like to see Tabular Editor add a way to check for global best practices as well as local standards.
I imagine it as a rule engine, where you can define rules thru a GUI with context like:

  • If column name ends with Key or ID, it should be set the "Summarize By" property to "Do not summarize"
  • If column is used as foreign key for other table, it should be set as hidden and "Do not summarize"
  • Measure names must start with either "Count of", "Sum of", "Average/Avg of"

You should be able to add your own rules and disable global rules.
You should be able to do full check against rules as well as have on-the-fly checking while editing.
You should be able to dismiss a warning/error and this info should be saved for subsequent checks.

Deleting a table sometimes causes crash when saving

  • If the table contains hierarchies (Workaround: Delete hierarchies before deleting the table)
  • If the table contains columns that are visible in one or more perspectives (Workaround: Delete all columns before deleting the table)
  • If the table is referenced in a Role filter (Workaround: Remove row level filters on the table before deleting it)

add an option in deploy data too

here is what's possible now

  • Connect to Power BI Desktop
  • Deploy the model to SSAS
    SSAS Can not refresh as the data source is in M

it will be very useful, if there is an option to deploy Data too, so even the model can not be processes , still it can be used.

so basically using PowerBI desktop to refresh the model and SSAS to host it.

automatically detect the PowerBI Desktop running

right now, i have to use DAX studio or a custom PowerQuery to get the port number so i can connect to the local SSAS instance, it will nice if Tabular editor detect automatically the list of pbix running

regression: Tabular Editor 2.3 crashes directly on startup (2.2 works perfectly)

Hi,

former versions of tabular Editor worked perfectly (2.2.6260). With yesterdays release of 2.3 I get a crash right at startup.

Problem signature:
  Problem Event Name:	CLR20r3
  Problem Signature 01:	TabularEditor.exe
  Problem Signature 02:	2.3.6320.43145
  Problem Signature 03:	58fa8073
  Problem Signature 04:	mscorlib
  Problem Signature 05:	4.6.1590.0
  Problem Signature 06:	5787ed44
  Problem Signature 07:	1587
  Problem Signature 08:	fc
  Problem Signature 09:	System.IO.DirectoryNotFound
  OS Version:	6.1.7601.2.1.0.16.7
  Locale ID:	1031
  Additional Information 1:	0a9e
  Additional Information 2:	0a9e372d3b4ad19135b953a78882e789
  Additional Information 3:	0a9e
  Additional Information 4:	0a9e372d3b4ad19135b953a78882e789

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt

grafik

Anything more I need to provide to debug the issue?

Regards
Felix

Deploying from Editor uses .bim model name as model name - changing model name from project file

As the title says. When you use Tabular Editor to deploy it uses the model name from the .bim file.
Which is problematic in cases where that name doesn't match the model name otherwise used. EI deploying fra VS using the model name found in the project file.

Suggestions: let the user select a project file and get the name from there or let the user fill in a textbox with model name in the deploy process.

UI enhancements

I'm not completely satisfied with the current UI of Tabular Editor, and would like to hear the opinions of others using the tool. Some key points to keep in mind, when discussing the UI:

  • I'd like to avoid including large docking frameworks or other 3rd party UI libraries in Tabular Editor, to avoid bloating and lots of .dll dependencies. Would like to rely only on native WinForms components if at all possible.
  • The UI needs to be intuitive and feel "familiar"
  • Although re-implementing Tabular Editor as a Visual Studio plug-in (.vsix) would give some obvious benefits in terms of UI, I'd prefer to avoid this option for now, since Tabular Editor as a standalone executable has some advantages on its own (for example, not requiring Local Admin rights or a VS installation).

Multiple Script tabs
Working with large models, I find myself using the Advanced Scripting tab a lot! It's a huge time saver when you want to batch changes to expressions, names, translations, display folders, etc. Unfortunately, the UI only provides a single script editor, and pressing "Play" will execute all the code in the textbox, meaning I often have to cut and paste script code between Tabular Editor and another text editor. I would really like to be able to work with multiple scripts simultaneously in Tabular Editor - for example something similar to SSMS, where you can open as many script tabs as you like, loading/saving to and from files, etc.

The way I normally work, I don't have this concern for the DAX expression editor, as switching between the expressions of measures and calculated columns is just a matter of double-clicking in the Explorer Tree.

Resizing main areas
The 3 main areas of Tabular Editor are the Explorer Tree, the expression/script editor tab control, and the property grid. Normally, I spend an equal amount of time in all 3 areas, but often times I find that I need to manually "resize" the areas, using the horizontal/vertical splitters between them, for example to increase the size of the script editor. This is a little annoying, but I'm not sure how this could most easily be handled - auto-hide of the Tree and the Property Grid perhaps? What do you guys think?

Adding the ability to update Tabular Editor through command line

It would be a great improvement if the file could be called with a command like "TabularEditor.exe update" which would enable it to download the latest version.

In addition it should be possible to specify either"-path" or "-self"
"-path" where it should be downloaded to
"-self" replace the file itself
label:enhancement

Add line breaks to expressions in json files

Hi,

when exporting the tabular model to a folder all expressions are formatted as a single line:
grafik

For version control purposses i would favour very much to have a new line after every \n. Thus, when changing ca complex DAX statement you can understand the diff.

regards

[Duplicate] Using letter keys to choose database

It would be awesome if letter keys on the keyboard could be used to jump through a list of databases in the Choose Database window.

E.g. when I press v, then first available model starting with the letter v should be selected in the list of databases.

This is useful when working on a server with many different AS databases.

Script execution switches to DAX editor

This happens when executing a script that changes the expression of the currently selected object. For some reason, the tab controls switches to the DAX Editor tab, which is confusing.

Error: CLR20r3.

How to fix this problem?

Assinatura do problema:
Nome do Evento de Problema: CLR20r3
Assinatura do Problema 01: TabularEditor.exe
Assinatura do Problema 02: 2.2.6240.39196
Assinatura do Problema 03: 5890f7a9
Assinatura do Problema 04: TabularEditor
Assinatura do Problema 05: 2.2.6240.39196
Assinatura do Problema 06: 5890f7a9
Assinatura do Problema 07: 511
Assinatura do Problema 08: 56
Assinatura do Problema 09: System.IO.FileNotFoundException
Versão do sistema operacional: 6.1.7601.2.1.0.256.4
Identificação da Localidade: 1046
Informações Adicionais 1: 0a9e
Informações Adicionais 2: 0a9e372d3b4ad19135b953a78882e789
Informações Adicionais 3: 0a9e
Informações Adicionais 4: 0a9e372d3b4ad19135b953a78882e789

Leia nossa declaração de privacidade online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0416

Se a declaração de privacidade online não estiver disponível, leia nossa declaração de privacidade offline:
C:\Windows\system32\pt-BR\erofflps.txt

Preferences must be saved in user folder

The tabular editor saves the preferences in a global file.
However in a multi user environment this creates a problem with permissions.

grafik

The file should be saved in a user writable location.

Thanks

Crashes when Saving to folder with special characters in file name (:)

Hi,

we have Dimension Attributes Named "Cost Center: Responsible" in our model. Saving this to a folder crashes the Tabular Editor:

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NotSupportedException: The given path's format is not supported.
   at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
   at System.IO.FileInfo.Init(String fileName, Boolean checkHost)
   at System.IO.FileInfo..ctor(String fileName)
   at TabularEditor.TOMWrapper.TabularModelHandler.OutArray(String path, String arrayName, JArray array)
   at TabularEditor.TOMWrapper.TabularModelHandler.SaveToFolder(String path)
   at TabularEditor.UI.UIController.File_SaveToFolder()
   at TabularEditor.FormMain.saveToFolderToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Thanks for the great tool.

Felix

support saving changes to pbix

the changes made to PBI Desktop are not save in pbix, it will nice to implement this functionality. maybe using UI automation.

Using [ESC] to close the Search-and-replace box rejects expression changes

A convenient shortcut to close the Search-and-replace box in the Expression Editor, is the ESC key. However, this keypress is also captured by the Expression Editor which cancels the current edit and rejects any changes made to the expression.

To fix, we need to make sure the keypress is not propagated to the editor, when the Search-and-replace box is open.

This is also the case when using ESC to close the confirmation dialog box that replacements were made.

Export all M queries as Text files

as now, Tabular Editor knows how to parse M queries which is fantastic by itself, it will be really useful to have the capability to export those Queries as a text file.

the rational is most of the time in PowerBI desktop we reuse a lot of M queries, having them as a text file, will make it easier for development.

Supply configuration files when deploying

It should be possible to specify a configuration file when deploying within the tool or when using the command-line syntax. The configuration file should be able to set various properties in the deployed model, such as:

  • Deployment destination (server and database id/name)
  • Deployment options (whether or not to deploy partitions, data sources, etc.)
  • Data Source definitions
  • Partition Source Query definitions
  • Role definitions
  • Role Member definitions

This will provide a lot more flexibility for command-line deployments and enable better support for automated deployment scenarios.

Hotkey for Save

It would be nice if the changes could be saved to the database via a hotkey (ctrl + s) rather than by clicking the Save button in the GUI.

Navigate list of databases using keyboard

When opening a model from a deployed database, or when deploying a database, the list of databases can not be navigated using keyboard letters (up/down arrows seem to work, but we can not jump to a database starting with a certain letter, by pressing that letter on the keyboard)

Changing a calculated table expression can cause errors when deploying

If a model uses perspectives/translations and contains a calculated table, an error is raised upon deployment, if the calculated table expression is changed such that one or more columns are removed from the output.

Workaround is to manually delete all columns from the table before deployment. Unfortunately, this causes another error (KeyNotFoundException), after deployment, and the model then needs to be reloaded in Tabular Editor from the deployed version.

Both these situations are caused by TE not being able to determine which data columns are present on a calculated table, since these are always tied to the table expression. This wasn't an issue before we allowed calculated table expressions to be changed inside TE. To fix this issue, Tabular Editor should handle calculated tables differently from normal tables, on deployment: All perspectives/translations should be removed from the columns of a calculated table prior to deployment. After deployment, TE should automatically refresh the table metadata and rebuild the columns of the table, thereby reapplying any perspectives/translations.

Error when saving/deploying model containing column with IsKey = true

This seems to be a bug in the TOM API, but I have not been able to locate the root cause.

The issue is caused by deleting a column with IsKey = "true" (or when deleting the entire table). This in itself, does not cause a crash, but if the operation is then subsequently undone and an attempt to save or deploy the model is made, the TOM API gives an error that no table can contain more than 1 column with IsKey = true.

Workaround seems to be, to save the model as a Model.bim file, and then opening that file in Tabular Editor. This allows you to then deploy the model to a server, although you will have lost the Undo stack.

DAX Formatter calls don't specify app/version

I've seen that the code in DaxFormatter.cs don't have the property CallerApp and CallerVersion assigned - however, the code to do that is commented. It would be nice to be able to get statistics from calls made using Tabular Editor, but the current calls don't allow to get detailed info.
Is there a reason for which you commented out the code? Is there something I can do to help?

Thanks!

TranslatedIndexer should not return null values

Objects without translations should return the default translated value instead of null, since null values are cumbersome to work with when scripting.

Example:

Selected.Measures
    .ForEach(m => m.TranslatedNames["da-DK"] = m.TranslatedNames["da-DK"].Replace("x", "y"));

This will throw an error if one or more of the selected measures does not have a danish name translation beforehand.

Possibility to Clone tables and their relationships

Being able to clone a table may be useful in some situations. When cloning a table, measures may need to be renamed to ensure uniqueness. Any realtionships going out from the cloned table should be cloned as well.

GUI option not necessarily needed, but should be accessible via Advanced Scripting.

Remember to provide intellisense for the Clone(...) method.

Doubleclicking column header separator in Select Database dialog

When doubleclicking the column header separators in the Select Database dialog, it is expected that the column headers are autosized to show the entire cell content. However, what happens is that the dialog is closed as if the user selected the currently focused database.

Proxy Configuration

Tabular Editor cannot use DAX formatter or check for updates when working behind a proxy. It should be possible to configure proxy settings for the http-components used, so that DAX formatter and update check will still work behind a proxy.

Commandline deployment crashes if target database does not exist

Hi,

I just tried to deploy with the TabularEditor commandline

C:\Users\fmoeller\Desktop\TabularEditor.exe  my.bim -D server newDatabase -O

This results in a crash:

Tabular Editor 2.3.6321.31331
--------------------------------
Loading model...
Dependency tree built in 90 ms
Deploying...
Deployment failed! Object reference not set to an instance of an object.

Felix

Allow Sorting of Columns in Model Sort

Hi,

it would be very much appreciated to able to sort columns. For attributes in dimensions this does not matter as they are ordered alphabetically. However, for columns in a fact table this is important, as the drill through depends on the model sort.

I would want to sort the following columns:
grafik

Thanks a lot

DaxFormatter removes comments

When using the DaxFormatter functionality, it removes any comments in the DA code. For example comments in this format:
/* blah blah */

However using DaxFormatter.com doesn't remove comments.

RLS references to a table not removed when table is deleted

When a table is deleted through Tabular Editor, row level filters (in roles) on that table do not seem to be removed automatically. The row level filter is no longer visible in the Tabular Editor GUI when the table has been removed, but the filter still exists behind the scenes. This causes an error when the model is opened in VS.

Current workaround is to remove all references from RLS to a table before deleting that table.

Is it possible to make this happen automatically?

Unhandled exception when adding CustomAction without a CustomActions.json file

The Tabular Editor throws an unhandled exception when I try to add a CustomAction (by clicking "+ Save as Custom Action..." on the Advanced Scripting tab), if I do not have a CustomActions.json file located under ...\AppData\Local\TabularEditor.

The function is working as intended when the CustomActions.json file does exist.

Advanced scripting editor - message for syntax error

I just ran into a strange error message when using the Advanced Scripting editor in Tabular Editor 2.1. I missed the semicolon at the end of a statement, and I got the error message attached here.
tabulareditor 2 1

In Tabular Editor 2.0 I used to get a more meaningful error message in this case. See the second attached screenshot here.
tabulareditor 2 0

This is low priority - but in my opinion the error message thrown in Tabular Editor 2.0 was more meaningful.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.