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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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
Employee
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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors
Top Kudoed Authors