Giter Club home page Giter Club logo

bravo's People

Contributors

adamsmodi avatar albertospelta avatar anabisbe avatar danieleperilli avatar dependabot[bot] avatar ievsantillan avatar jorgecfdaniel avatar lifeindarkside avatar mahyari88 avatar marclelijveld avatar marcosqlbi avatar marcuswegener avatar mrlacey avatar mrskovgaard avatar nickyvvr avatar onuromer avatar otykier avatar pauloandrejesus avatar robertoagnello avatar tirnovar 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

bravo's Issues

Format online with Dax Formatter does not use format settings

When you select "Format online with Dax Formatter" from the preview panel, the arguments used for the query string are different from Bravo's formatting settings. The DAX expression formatted through the Dax Formatter web page therefore turns out to be different from the one formatted by using Bravo.

Consider applying the same format settings used by the Bravo application also when using the online Dax Formatter webpage.

ManageDates configuration improvements

  • host - add the DateConfiguration.IsCurrent property (details here #159)
  • host - set DateConfiguration defaults (FirstMonthOfYear, FirstDayOfWeek, RegionalFormat, HolidaysCountry) (details here #173)
  • host - support removing tables and measures by using DateConfiguration IsEnabled properties (details here #175)
  • UI - support changes and new properties (#178)

PBICloudService.GetDatasetsAsync unhandled NullReferenceException

  • TraceId b00c410b3e509e46b9aa333e83a96581
  • Message An unhandled exception has occurred while executing the request.
  • Version: 0.2.0-0.2.8067.15027-preview-20220201.2-develop-fa558b4bdd9cdafc896eb5a569cbe7fad72dd072
  • Stack Trace:
System.NullReferenceException:
   at Sqlbi.Bravo.Services.PBICloudService.<GetDatasetsAsync>... \Services\PBICloudService.cs:163)
   at Sqlbi.Bravo.Services.PBICloudService+<GetDatasetsAsync>... \Services\PBICloudService.cs:179)
   at Sqlbi.Bravo.Controllers.AnalyzeModelController+<GetPBICloudDatasets>... \Controllers\AnalyzeModelController.cs:106)

Telemetry options - enable/disable error

The toggle button that enables telemetry does not update the settings, the action raises an HTTP 400 error which is not notified to the user. The telemetryEnabled property does not contains a valid boolean value, the submitted value is telemetryEnabled: "on" instead of telemetryEnabled: "true".

errors: {options: ["The options field is required."], $.telemetryEnabled: [,…]}
$.telemetryEnabled: [,…]
0: "The JSON value could not be converted to System.Boolean. Path: $.telemetryEnabled ......"
options: ["The options field is required."]
status: 400
title: "One or more validation errors occurred."
traceId: "00-a4d187cd7ef74f4f863b7b8765911200-7435dd511f013140-00"
type: "https://tools.ietf.org/html/rfc7231#section-6.5.1"

api/ListReports returns a connection timeout exception

Error details from telemetry - TraceId | faa13c85fcbd4949b6f80a01bd960f72

The connection timed out.

Inner exception Microsoft.AnalysisServices.ConnectionException handled at System.Threading.Tasks.TaskReplicator.Run:
   at ...PBIDesktopService.<GetReports>g__GetConnectionDetails|...\PBIDesktopService.cs:123)

Timeout error and duplicated TimeIntelligence measures

If you create some dates using Manage Dates, you need to close the report in Power BI Desktop, otherwise Bravo won't be able to apply new changes again.

Reproduction Steps:

  1. Open a report in Power BI and Bravo
  2. Create dates tables in the report
  3. Repeat point 2 -> At this point Bravo loads forever and, eventually, returns a Timeout error.

Too long named tables error when exporting to Excel

When exporting reports with long named tables to Excel, this error is thrown:

System.ArgumentException
HResult=0x80070057
Message=The name "DateTableTemplate_47e7e47f-2d1a-4473-9042-4a6fc79e89c5" exceeds the maximum length of 31 characters supported by Excel
Source=LargeXlsx
StackTrace:
at LargeXlsx.XlsxWriter.BeginWorksheet(String name, Int32 splitRow, Int32 splitColumn, Boolean rightToLeft, IEnumerable`1 columns)
at Sqlbi.Bravo.Services.ExportDataService.ExportExcelFileImpl(ExportDataJob job, ExportExcelSettings settings, String connectionString, String databaseName, CancellationToken cancellationToken) in W:\src\Services\ExportDataService.cs:line 293
at Sqlbi.Bravo.Services.ExportDataService.ExportExcelFile(PBIDesktopReport report, ExportExcelSettings settings, CancellationToken cancellationToken) in W:\src\Services\ExportDataService.cs:line 119
at Sqlbi.Bravo.Controllers.ExportDataController.ExportExcelFileFromPBIDesktopReport(ExportExcelFromPBIReportRequest request, CancellationToken cancellationToken) in W:\src\Controllers\ExportDataController.cs:line 99
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()

Can't open VPAX files

I can't open VPAX files anymore.
It returns:

System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=Bravo
  StackTrace:
   at Sqlbi.Bravo.Models.AnalyzeModel.TabularDatabase.CreateFrom(Model daxModel) in W:\src\Models\AnalyzeModel\TabularDatabase.cs:line 88

Export as CSV in a subfolder

Consider automatically creating a subfolder in the selected folder when Export as CSV is selected.
The reason is that from the File Browser it is not possible to see the contents of the folder you choose and it may contain a previous export.

Optional BravoExportSummary sheet

I would make the BravoExportSummary sheet optional.

Also, it should be the first sheet of the Excel file (if possible) and I would use a more "human" name like "Export Summary".
We could also evaluate to include a sentence like "Exported with Bravo for Power BI".

Data export fails if table contains no columns

Exporting data to Excel and CSV throws an exception if the selected table contains no columns, as in the case of a measure-only table.

AdomdErrorResponseException
"Query (%, %) Table '%' cannot be used in computations because it does not have any columns."

  • Host / add TabularTableFeature and TabularTableFeatureUnsupportedReason enums (done in #129)
  • UI / enable or disable table selection based on the new enums, add table tooltip (done in #132)

api/GetCurrentVersion always returns 204 NoContent

The AutoUpdater.NET library seems to be malfunctioning after an error occurs during the update check. Then, for all subsequent attempts to check for an update, the api/GetCurrentVersion API always returns an HTTP code 204 NoContent

Repro steps:

  • api/GetCurrentVersion correctly returns a 200 OK response
  • disconnect from the internet
  • api/GetCurrentVersion correctly returns a network connection error in the response
  • reconnect to the internet
  • api/GetCurrentVersion returns a 204 NoContent response

Tab field delimiter not applied on CSV export

The tabulation character U+0009 field delimiter not applied on CSV export. An empty string is received for the ExportDelimitedTextSettings.Delimiter property and the default character of the local system culture is applied as fallback.

First Year and Last Year parameters in ManageDates

If you select "Date Interval Scan = Disabled" and set the First Year to 1990, keeping Last Year blank, the preview runs indefinitely.
By setting "Last Year" to 2010, the preview appears.
However, if after this change I switch to "Date Interval Scan = Choose Columns" and I select two columns in Sales, which range starts in 2000, I still see the first date in the preview set to 1990.
It makes sense to have First Year and Last Year acting as constraints for the other options, but they should be visible in the UI - whereas they are now visible only in "Date Interval Scan = Disabled" mode.

TypeError: Cannot read properties of undefined (reading 'map')

Repro steps:

  • Open test-dates.pbix ( file attached to issue 147 )
  • Disable TimeIntelligence
  • Set Calendar to Standard and then select Preview, Apply
  • Set Calendar to Custom and then select Preview
  • The error should appear after few seconds
TypeError: Cannot read properties of undefined (reading 'map')
    at main.js:2:1193644
    at Array.forEach (<anonymous>)
    at main.js:2:1193586
    at Array.forEach (<anonymous>)
    at main.js:2:1193410
    at Array.forEach (<anonymous>)
    at i.loadSampleData (main.js:2:1193363)
    at main.js:2:1190473
i.logError @ main.js:2
n.render @ main.js:2
n @ main.js:2
(anonymous) @ main.js:2
Promise.catch (async)
i.generatePreview @ main.js:2
i.render @ main.js:2
i.showScene @ main.js:2
i.pushScene @ main.js:2
(anonymous) @ main.js:2
e.trigger @ main.js:2
e.push @ main.js:2
(anonymous) @ main.js:2

Format DAX improvements

  • Allow resizing current/preview measure panes (done in #164)
  • Allow side over side comparison (done in #164)
  • Allow toggling word wrap (done in #164)
  • Allow zooming the measures panes full screen

Autoscan doesn't always work

With some files the preview returns this error:

Microsoft.AnalysisServices.AdomdClient.AdomdErrorResponseException: 'Query (185, 39) Cannot find table ''.'
Attached is a sample file you can use to reproduce the issue.
test-dates.pbix.zip

Add support for application diagnostics

  • Add diagnostics settings and API action (done/included in #81)
  • Add diagnostics console pane (done in #87)
  • Add Clear control (done in #107)
  • #100
  • Anonymize data if level is Basic (done in #107)
  • Log all calls (auth, open, web messages, etc) (done in #107)
  • Avoid call api/GetDiagnostics while diagnostics is not enabled (done in #107)

Add "Download preview versions" option

Add an option in the About screen to allow users to be notified when a new preview version of Bravo is available.

  • Add new API option settings (completed with #82)
  • Add update settings in the About screen (done in #87)
  • #94
  • Check for updates on update channel change (done in #101)

Special flag for columns created via Manage Dates

Perhaps we need a special flag for tables if they have been previously created by Manage Dates so to avoid being selected for auto scan.

The table must be excluded if :

  • TabularTable.IsManageDates = true
  • TabularTable.IsDateTable = true

Task

  • host - add new TabularTable.IsManageDates property (#186)
  • UI - add support for new property and exclusion logic (#187)
  • host - update Dax.Template package (#188)

Exporting a dataset to Excel returns error 404

Unable to export a dataset to Excel. It returns an error like this:

Error HTTP/404: Not Found.
Trace Id: 00-efdfeb57c991934cb73c1031a469aed6-55d0c287f0b6c341-00
Version: 0.0.0.999-DEV (0.0.0.999)

Detect unsupported features

We need to disable some features for different document types (e.g.: Format DAX should not be available for VPAX files, Manage Dates for Datasets, etc...).

  • Add some attributes in the model returned by getModelFromXXX with the list of features and their availability (#121)
  • Add a specific screen in the UI when the feature is not available (done in #112)
  • Add UI support for the AppFeature enum (done in #137)

XLSX export produces a corrupt workbook file

Recovery log file content:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <logFileName>error387240_01.xml</logFileName>
  <summary>Fehler in Datei 'https://d.docs.live.net/[..]/Desktop/[..].xlsx'</summary>
    <repairedRecords>
      <repairedRecord>Reparierte Datensätze: Eigenschaften der Tabelle von /xl/workbook.xml-Part (Arbeitsmappe) 
    </repairedRecord>
  </repairedRecords>
</recoveryLog>

Allow to open PBIX files directly from Bravo

It might be useful to open PBIX files directly from Bravo even if they are not already open in Power BI.
Under the hood we should open the report with Power BI Desktop and wait for it to load before opening it in Bravo.

  • host -add new API (#166)
  • UI - support changes (#170)

TargetMeasures for Time Intelligence

If you choose some target measures for the generation of Time Intelligence functions, the feature doesn't work well.
If target measures are not chosen, however, several functions are generated.

Reproduction Steps:

  1. Open a report in Power BI and Bravo
  2. Enable Time Intelligence, set Choose measures... in the Target Measures option
  3. Generate a preview

You see that the Time Intelligence tab contains only a single function in the Date table.
Try again, but at the point 2 set All measures (which means don't send the TargetMeasures parameter) - you see at this point that different functions are generated.

A second Power BI file does not open Bravo correcly

Repro:

  1. Open a PBIX file with Power BI Desktop (instance 1)
  2. Open Bravo from Power BI Desktop
  3. Open another PBIX file with Power BI Desktop (instance 2)
  4. Click the Bravo icon on Power BI Desktop external tool ribbon: I would expect Bravo to be moved in the foreground and open a new tab with the connection to instance 2, but nothing happens.

Persist and reload the applied DateConfiguration

When a ManageDate template is applied, its configuration is saved in the metadata of the tabular model.
The configuration is marked as the current configuration via the new `DateConfiguration.IsCurrent' property.
This configuration is also added to the configurations exposed via the GetConfigurationsForReport API.

  • Added property DateConfiguration.IsCurrent
  • Persisted current configuration using TOM.ExtendedProperties
  • Added current DateConfiguration to the api/GetConfigurationsForReport result

Report bug link

We need to add a button pointing to the issue page on Github to allow posting bugs/requests directly in Bravo.

Error in data lineage for new Date tables

Cannot create relationships in Power BI between a new Date table created by Bravo and existing tables.
Repro:

  • Open a Contoso file without Date table (delete the existing one if it exists)
  • Open Bravo and create a Date table
  • Go in Power BI, Diagram View, and create a relationship between Date and an existing Date column.

Error Message:
Non-empty assertion failure: toTableLocalLineageTag

Ignore minor differences in DAX Formatter

We received this feedback: In my Contoso file from TDGTD I think, measures were already formatted, yet the tool says they can be formatted? Why? Even after I enabled automatic preview, it still shows the same number of measures that can be formatted. Or does it mean the measures aren’t read-only?

Probably most of the differences are caused by the initial CR/LF and following differences between CR/LF and CR or LF only that are not visible to the user.
We should verify whether this is the case and ignore these differences in the user notification (or add an option that controls whether the comparison should include CR/LF differences or not).

  • Normalize DAX spaces/CR/LF, add new format setting in Bravo (#118)
  • UI add the new DaxLineBreakStyle setting (#132)
  • Improve screen summary (#171)
  • further testing of the changes is required

Export Data CSV: Unhandled error if the delimiter is not valid

Reproduce steps:

  1. Open a file and go to Export Data
  2. Choose CSV and Other as Fields Delimiter
  3. Insert a space as custom field
  4. Export

It returns CsvHelper.Configuration.ConfigurationException: ' cannot be a WhiteSpaceChar.' as unhandled error.

We can avoid inserting spaces in the UI, but I'm afraid there are other characters that may raise the same error.

Setup - add a new framework-dependant publish version

In this mode, the .NET 5.0 runtime must be installed on the target machine. We have less control at runtime and don't know exactly what version of the .NET runtime will be used when the app runs. We should consider adding more runtime detail to telemetry and diagnostics.

Preliminary test error:

Description: A .NET application failed.
Application: Bravo.exe
Path: C:\Program Files\SQLBI\Bravo\Bravo.exe
Message: Error:
  An assembly specified in the application dependencies manifest (Bravo.deps.json) was not found:
    package: 'System.Text.Json', version: '5.0.1'
    path: 'lib/netcoreapp3.0/System.Text.Json.dll'

Fix blurry icon

The icon in the application is blurry compared to the icon of the application file.

Notification_Center

.

Detect disabling Auto Date/Time via Sync

The feature request

If you’re using Auto Date/Time, Bravo says that Manage Dates is unsupported – fine.
If I go back to my file, disable Auto Date/Time, Bravo is unable to detect the change: I have to close the report and reopen it to make the Manage Dates feature available.

Proposed solution

Bravo should detect that Auto Date/Time has been disabled in the report when the Sync button is clicked.

Additional context

No response

Show links to folder/file after export

After the export operation is completed it would be useful to provide a link to open the folder with the exported files or to the exported Excel file.

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.