Qlik Community

Ask a Question

Qlik Sense Integration, Extensions, & APIs

Discussion board where members can learn more about Integration, Extensions and API’s for Qlik Sense.

Announcements
Talk to Experts Tuesday, January 26th at 10AM EST: Qlik Sense. REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Mashup in External Server with RequireJs [load require-config.js]

Hello every body,

I have few difficulties with RequireJs to embed a Qlik Sense Mashup in an web application.

I'm using the 3.0 version of Qlik Sense, and  I've create a simple mashup to embed it in an dashboard page of a Java J2EE web app.

So I followed the tutorials and I've implemented the code generated by the Mashup Editor in my web app.

And here started my problems... My web app already include RequireJs (Version 2.20) with Bower, mainly for angular modules loading, so I use this version to configure and require the qlik files :

//Configuration

require.config({

  baseUrl: 'https://[serverName]:443/resources'

});

//Load Qlik files

require(['js/qlik']) function(qlik) {

  console.log(qlik);

})

But the qlik objet return by 'require(['js/qlik']) ' is undefined and I've got this error :

GET https:[serverName]/resources/assets/general/require-config.js 404 (Not Found)

I've try to include the requireJs file used by the Qlik server which much more bigger than the offical version available online, it seems to work fine for qlik modules but all the other modules  load crash.

By curiosity I've try to include another version of requireJs (from a CDN) in the HTML page generated by the Mashupe creator and I've got the same error.

Do you encounter same problems with mashup implementation and RequireJs ?

Is it a known bug in Qlik Sense 3.0 or an error in my configuration.

Thanks in adavance

Best regards

8 Replies

Hi John,

The requirejs file included with Qlik Sense actually includes a lot more than requirejs, so you have to use it to make your mashup work.

Erik

Not applicable

Hi Erik,

Thanks for your answer.

In my project, RequireJs is included via a repository bower to be sure to have an official version.

With the Qlik version, I have inclusion error with other modules I need in my web app, so I cant' replace my Requirejs version with the Qlik version.

Thanks,

Employee
Employee

Yea, as Erik pointed out, the Qlik requirejs file is actually much more than requirejs. You should be able to use it in place of your current requirejs file though.

Check out my mashup boilerplate where I make use of require's context

GitHub - fkabinoff/qlik-lars: Qlik Sense Mashup Template

the files most pertinent to you -

qlik-lars/main.js at master · fkabinoff/qlik-lars · GitHub‌ - loads qlik.js with it's baseUrl, then requires my require project

qlik-lars/app.js at master · fkabinoff/qlik-lars · GitHub ‌- my require project entry point

Employee
Employee

Are you sure your inclusion errors aren't related to the baseUrl, and not the require version?

Not applicable

Thank you for you project, I'll try to implement your solution in my application

Not applicable

Thank you for sharing your project, but in your Angular project, you do not include AngularJs source file, you use the Qlik version.

In my web app we also use AngularJs with many differents modules and we need to keep controle on wich version of AngularJs is runing on the project.

So the solution I choose is to put my mashup in an iframe to isolate it from my web application, so I can easily implement the mashup in my app without conflict problem.

Creator
Creator

I have the same problem. As mentioned by Erik, requirejs provided by qlik is actually a combined js with all modules. You should use that instead of the official version.

For us qlik is running on separate doaim. I am using

As suggested here https://help.qlik.com/en-US/sense-developer/3.0/Subsystems/Mashups/Content/Howtos/mashups-load-exter...

<script data-main="script" src="https://qlikserver/proxy/resources/js/external/requirejs/require.js"></script>


And in the script.js I have defined my modules.  when I follow this I get 404 error for apis/qlik-impl.js

Lately I added qlik definition in my require module as well.

require

  .config({

  paths : {

  "jQuery" :"jquery-1.11.0.min",

  "qlik" : "https://qlikserver/proxy/resources/js/qlik",

});

Now I don't get any error but getting some authentication error from qlik server.

Interestingly If I user previous version of qlik.js ( prior to 3.0) , which is downloaded to my app server

require

  .config({

  paths : {

  "jQuery" :"jquery-1.11.0.min",

  "qlik" : "qlik",

});

Everything works...

I am also trying to figure out what is causing this problem,

Thanks

-Vishal

Creator
Creator

So I followed the project shared by Francis and it all worked great. You need to make sure that you are loading the js synchronously. Don't use data-min instead use script tags to load require js provided by qlik first.

Make sure your local require config is defined as separate context and also before your config  the baseurl of main require js should be set to the qlik sense server path (qliksense/proxy/resources/)

Thanks

-Vishal