Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

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

 

  • v-evelk's avatar
    v-evelk
    6 years ago

    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
    [email protected]

  • Anonymous's avatar
    Anonymous
    6 years ago

    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");

7 Replies

  • v-evelk's avatar
    v-evelk
    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
    [email protected]

    • Anonymous's avatar
      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

       

      • v-evelk's avatar
        v-evelk
        Microsoft Employee

        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
        [email protected]