Discussion board where members can learn more about Integration, Extensions and API’s for Qlik Sense.
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
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
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,
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
Are you sure your inclusion errors aren't related to the baseUrl, and not the require version?
Thank you for you project, I'll try to implement your solution in my application
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.
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
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