Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now

Reply
Anonymous
Not applicable

Cannot import multiple r-script sources in RHTML visual

I'm unable to import multiple r-script source files in RHTML visuals.  Power BI and R seem to import the first file referenced, but any subsequent source(./r_files/foo.r) calls appear to be ignored.  This behavior is not getting repeated in RStudio using the same instance of R.  Any guidance would be appreciated.

 

Steps to reproduce:

1) Create new visual using the RHTML template and create a new .r file in the r_files directory:

 

> pbiviz new sampleRHTMLVisual -t rhtml
> cd sampleRHTMLVisual
> echo $null >> .\r_files\test.r

2) Flesh out required information in pbiviz.json:

 

 

visual:description
visual:supportUrl
visual:author:name
visual:author:email

3) Insert the following code as the first line in script.r:

 

 

source('./r_files/test.r')

4) Compile and load the visual:

 

> pbiviz package

5) Observe the error message:

Can't display this visual.
R script error.
Error in libraryRequiredInstall("ggplot2"): could not find function "libraryRequireInstall"
Execution halted

PBI_error.png

 

2 ACCEPTED SOLUTIONS

Hello,

 

It is an issue in the template, we will fix it soon.

To fix it for you now, please, change NodeListOf by HTMLCollectionOf type. It should help.

 

Kind Regards,

 

Evgenii Elkin,
Software Engineer
Microsoft Power BI Custom Visuals
pbicvsupport@microsoft.com

View solution in original post

Anonymous
Not applicable

Confirmed. Changing the following seems to fix the issue:

 

./src/visual.ts

148let headList: NodeListOf = el.getElementsByTagName("head");>let headList: HTMLCollectionOf = el.getElementsByTagName("head");
160let bodyList: NodeListOf = el.getElementsByTagName("body");>let bodyList: HTMLCollectionOf = el.getElementsByTagName("body");

View solution in original post

7 REPLIES 7
v-evelk
Microsoft Employee
Microsoft Employee

Hello,

 

It looks like you try to create new project with non-webpack version of tools and it is probably required to set this file in tsconfig.json ('files' section).

I tried to build by your instruction with the latest version of powerbi-visuals-tools and everything looks OK.

To install the latest version of tools please run in a console the following command:

npm install -g powerbi-visuals-tools@latest

Kind Regards,

Evgenii Elkin,
Software Engineer
Microsoft Power BI Custom Visuals
pbicvsupport@microsoft.com

Anonymous
Not applicable

Following the same set of instructions after installing the latest powerbi-visuals-tools package has two new errors during compilation.

 

Additionally, the same error occurs when simply running the following 3 steps:

 

 

> pbiviz new sampleRHTMLVisual -t rhtml
> cd .\sampleRHTMLVisual\
> pbiviz package

 

 

> pbiviz package
info Building visual...
info Start preparing plugin template
info Finish preparing plugin template
Error parsing bundle asset "C:\Users\foobar\sampleRHTMLVisual\.tmp\drop\visual.js": no such file
No bundles were parsed. Analyzer will show only original module sizes from stats file.
Webpack Bundle Analyzer saved report to C:\Users\foobar\sampleRHTMLVisual\webpack.statistics.prod.html
ERROR Failed to compile with 2 errors 3:21:44 PM
error in C:\Users\foobar\sampleRHTMLVisual\src\visual.ts
[tsl] ERROR in C:\Users\foobar\sampleRHTMLVisual\src\visual.ts(148,17) TS2741: Property 'forEach' is missing in type 'HTMLCollectionOf<HTMLHeadElement>' but required in type 'NodeListOf<HTMLHeadElement>'.
error in C:\Users\foobar\sampleRHTMLVisual\src\visual.ts
[tsl] ERROR in C:\Users\foobar\sampleRHTMLVisual\src\visual.ts(160,13) TS2741: Property 'forEach' is missing in type 'HTMLCollectionOf<HTMLBodyElement>' but required in type 'NodeListOf<HTMLBodyElement>'. error Package wasn't created. 2 errors found

 

Hello,

 

It is an issue in the template, we will fix it soon.

To fix it for you now, please, change NodeListOf by HTMLCollectionOf type. It should help.

 

Kind Regards,

 

Evgenii Elkin,
Software Engineer
Microsoft Power BI Custom Visuals
pbicvsupport@microsoft.com

Anonymous
Not applicable

Confirmed. Changing the following seems to fix the issue:

 

./src/visual.ts

148let headList: NodeListOf = el.getElementsByTagName("head");>let headList: HTMLCollectionOf = el.getElementsByTagName("head");
160let bodyList: NodeListOf = el.getElementsByTagName("body");>let bodyList: HTMLCollectionOf = el.getElementsByTagName("body");
Anonymous
Not applicable

When I try to do as robjensen does here 


@Anonymous wrote:

Confirmed. Changing the following seems to fix the issue:

 

./src/visual.ts

148let headList: NodeListOf = el.getElementsByTagName("head");>let headList: HTMLCollectionOf = el.getElementsByTagName("head");
160let bodyList: NodeListOf = el.getElementsByTagName("body");>let bodyList: HTMLCollectionOf = el.getElementsByTagName("body");

I get the following error:

C:\sampleRHTMLVisual>pbiviz package
info Building visual...
info Start preparing plugin template
info Finish preparing plugin template
Error parsing bundle asset "C:\sampleRHTMLVisual\.tmp\drop\visual.js": no such file

No bundles were parsed. Analyzer will show only original module sizes from stats file.

Webpack Bundle Analyzer saved report to C:\sampleRHTMLVisual\webpack.statistics.prod.html


ERROR Failed to compile with 2 errors 12:11:45 PM

error in C:\sampleRHTMLVisual\src\visual.ts

[tsl] ERROR in C:\sampleRHTMLVisual\src\visual.ts(148,27)
TS2314: Generic type 'HTMLCollectionOf<T>' requires 1 type argument(s).

error in C:\sampleRHTMLVisual\src\visual.ts

[tsl] ERROR in C:\sampleRHTMLVisual\src\visual.ts(160,23)
TS2314: Generic type 'HTMLCollectionOf<T>' requires 1 type argument(s).

 

 

Any suggestions?

 

Anonymous
Not applicable


@Anonymous wrote:

When I try to do as robjensen does here 


@Anonymous wrote:

Confirmed. Changing the following seems to fix the issue:

 

./src/visual.ts

148let headList: NodeListOf = el.getElementsByTagName("head");>let headList: HTMLCollectionOf = el.getElementsByTagName("head");
160let bodyList: NodeListOf = el.getElementsByTagName("body");>let bodyList: HTMLCollectionOf = el.getElementsByTagName("body");

I get the following error:

C:\sampleRHTMLVisual>pbiviz package
info Building visual...
info Start preparing plugin template
info Finish preparing plugin template
Error parsing bundle asset "C:\sampleRHTMLVisual\.tmp\drop\visual.js": no such file

No bundles were parsed. Analyzer will show only original module sizes from stats file.

Webpack Bundle Analyzer saved report to C:\sampleRHTMLVisual\webpack.statistics.prod.html


ERROR Failed to compile with 2 errors 12:11:45 PM

error in C:\sampleRHTMLVisual\src\visual.ts

[tsl] ERROR in C:\sampleRHTMLVisual\src\visual.ts(148,27)
TS2314: Generic type 'HTMLCollectionOf<T>' requires 1 type argument(s).

error in C:\sampleRHTMLVisual\src\visual.ts

[tsl] ERROR in C:\sampleRHTMLVisual\src\visual.ts(160,23)
TS2314: Generic type 'HTMLCollectionOf<T>' requires 1 type argument(s).

 

 

Any suggestions?


What is your complete line of code in row 148?  The table in this webpage wrapped each line of text into two rows, but they should just be one row each in visual.ts

 

Row 148 should read:

let headList: HTMLCollectionOf<HTMLHeadElement> = el.getElementsByTagName("head");

 

Row 160 should read:

let bodyList: HTMLCollectionOf<HTMLBodyElement> = el.getElementsByTagName("body");

Is it possible to share a link to your repo that I could analyze it?

You could send it to pbicvsupport@microsoft.com 

 

Kind Regards,

 

Evgenii Elkin,
Software Engineer
Microsoft Power BI Custom Visuals
pbicvsupport@microsoft.com

Helpful resources

Announcements
November Carousel

Fabric Community Update - November 2024

Find out what's new and trending in the Fabric Community.

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

Check out the November 2024 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors