<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to handle data using enigma and nebula.js? in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458667#M20730</link>
    <description>&lt;P&gt;Thanks, &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/45015"&gt;@Jeffrey_Goldberg&lt;/a&gt;, for the support.&lt;/P&gt;
&lt;P&gt;Yes, I have already used qlik-embed in another project. I wanted to try nebula.js because, honestly, it’s not clear to me which is the best approach to embed existing charts in a mashup.&lt;/P&gt;
&lt;P&gt;Both of them work, even if nebula.js can’t embed all the native object types, like the filter pane, for example.&lt;/P&gt;
&lt;P&gt;Regarding creating hypercubes, thanks for the link to qlik-api-ts. I didn’t know about it. I’ll try it today.&lt;/P&gt;
&lt;P&gt;In your opinion, what is the best solution then? Should I switch to qlik-embed for existing objects and qlik-api-ts for hypercubes and variables?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 03 Jun 2024 08:38:28 GMT</pubDate>
    <dc:creator>cristian_dalsanto</dc:creator>
    <dc:date>2024-06-03T08:38:28Z</dc:date>
    <item>
      <title>How to handle data using enigma and nebula.js?</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458166#M20717</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I'm testing mashups using Enigma and Nebula.js in a Angular application.&lt;/P&gt;
&lt;P&gt;The goal is to create a mashup using more modern framework than AngularJS, but I have to replace Capabilities API. I was able to replace getObject of Capability using Nebula.js embed function. I also managed the hypercube creation, using enigma.js&lt;/P&gt;
&lt;P&gt;The problem is: how should I do to handle data binding? With capabilities API there was a callback in the creation of the hypercube. There's a similar method in enigma too?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="inherit"&gt;I only found how to trace every call through enigma session, but it's not &lt;/FONT&gt;helpful&lt;FONT face="inherit"&gt;...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;SPAN&gt;enigmaSession&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;on&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'traffic:received'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;data&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt; &lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;log&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'received:'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;data&lt;/SPAN&gt;&lt;SPAN&gt;));&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;Here a snippet of my code:&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;async&lt;/SPAN&gt; &lt;SPAN&gt;function&lt;/SPAN&gt; &lt;SPAN&gt;createHypercube&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;enigmaApp&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;hypercubeDef&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;sessionObj&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;await&lt;/SPAN&gt; &lt;SPAN&gt;enigmaApp&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;createSessionObject&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;hypercubeDef&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;hypercubeData&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;await&lt;/SPAN&gt; &lt;SPAN&gt;sessionObj&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;getLayout&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;hypercubeData&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; } &lt;/SPAN&gt;&lt;SPAN&gt;catch&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Thanks a lot for your kind help...&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Cristian&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 31 May 2024 09:29:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458166#M20717</guid>
      <dc:creator>cristian_dalsanto</dc:creator>
      <dc:date>2024-05-31T09:29:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to handle data using enigma and nebula.js?</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458368#M20724</link>
      <description>&lt;P&gt;Hi all,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think this could be a solution.&lt;/P&gt;
&lt;P&gt;This is the function I use to get hypercube:&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;getInitialHypercube&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;hypercubeDef&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;Observable&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;new&lt;/SPAN&gt; &lt;SPAN&gt;Observable&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;observer&lt;/SPAN&gt; &lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;qlikApp&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;createSessionObject&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;hypercubeDef&lt;/SPAN&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;SPAN&gt;then&lt;/SPAN&gt;&lt;SPAN&gt;((&lt;/SPAN&gt;&lt;SPAN&gt;hypercube&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;hypercube&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;getLayout&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;then&lt;/SPAN&gt;&lt;SPAN&gt;((&lt;/SPAN&gt;&lt;SPAN&gt;layout&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;log&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Initial hypercube layout:'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;layout&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;observer&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;layout&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;qHyperCube&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;qDataPages&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;qMatrix&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;hypercube&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;on&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'changed'&lt;/SPAN&gt;&lt;SPAN&gt;, () &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;hypercube&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;getLayout&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;then&lt;/SPAN&gt;&lt;SPAN&gt;((&lt;/SPAN&gt;&lt;SPAN&gt;layout&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;any&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;log&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Updated hypercube layout:'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;layout&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;observer&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;next&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;layout&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;qHyperCube&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;qDataPages&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;].&lt;/SPAN&gt;&lt;SPAN&gt;qMatrix&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; } &lt;/SPAN&gt;&lt;SPAN&gt;catch&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;observer&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;error&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;and this is the snippet of code in angular component that uses the method:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;qlikproviderservice&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;getInitialHypercube&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;HYPERCUBEDEF&lt;/SPAN&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;SPAN&gt;subscribe&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;data&lt;/SPAN&gt; &lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;console&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;log&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'ypercube data:'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;data&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;hypercubedata&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;data&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm still testing, but at the moment, when I apply a selection, this.hypercubedata get filtered data...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 May 2024 17:36:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458368#M20724</guid>
      <dc:creator>cristian_dalsanto</dc:creator>
      <dc:date>2024-05-31T17:36:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to handle data using enigma and nebula.js?</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458372#M20725</link>
      <description>&lt;P&gt;Hey&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/81045"&gt;@cristian_dalsanto&lt;/a&gt;&amp;nbsp;, have you tried using qlik-embed and qlik-api?&lt;/P&gt;
&lt;P&gt;These are the modern equivalents of Capability API for Qlik Cloud and Qlik Sense Client Managed May 2024 and beyond.&lt;/P&gt;
&lt;P&gt;Here's a getting started for qlik-embed:&amp;nbsp;&lt;A href="https://qlik.dev/embed/qlik-embed/" target="_blank"&gt;https://qlik.dev/embed/qlik-embed/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Here's the typescript types for qlik-api: &lt;A href="https://github.com/qlik-oss/qlik-api-ts" target="_blank"&gt;https://github.com/qlik-oss/qlik-api-ts&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;and regarding getting hypercube data I've created a replacement function for app.createCube.&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;async function createCube(hyperCubeDef, callback) {
  const app = this;
  const okFunc = await callback
    ? async function(data) {
      await callback(data, app);
    }
    : function() { };

  const theData = await app.createSessionObject(hyperCubeDef);
  let dataLayout;

  theData.on("changed", async () =&amp;gt; {
    dataLayout = await theData.getLayout();
    await okFunc(dataLayout);
    return theData;

  });

  return theData;
}

export { createCube };&lt;/LI-CODE&gt;
&lt;P&gt;and then to use it:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;&amp;lt;script type="module"&amp;gt;
    import { auth, qix } from "https://cdn.jsdelivr.net/npm/@qlik/api@1/index.js";
    import { createCube } from "./qlik-nu-capabilities.js";
    
    auth.setDefaultHostConfig({
      host: "&amp;lt;hostname to qlik cloud or CM server&amp;gt;",
      authType: "Oauth2", //see docs on qlik.dev for CM auth types
      clientId: "&amp;lt;For use with OAuth2 in Qlik Cloud",
      redirectUri: "manage OAuth2 session",
      accessTokenStorage: "session",
      autoRedirect: true,
    });

    const appId = "6b410f36-cb58-4bce-8e6f-a37220bfd437";
    const app = await qix.openAppSession(appId).getDoc();
const cubeDef = {
      qInfo: {
          qId: 'sessionChart',
          qType: 'qHyperCubeDef'
      },
    qHyperCubeDef: {
        qDimensions: [
          {
              qLibraryId: 'FFQHMq',
          },
          {
            qLibraryId: 'KFmTudV',
          }
        ],
        qMeasures: [
          {
            qDef: { qDef: "=SUM(Sales)", qLabel: "Total Sales" },
          },
        ],
        qInitialDataFetch: [
          {
            qLeft: 0,
            qTop: 0,
            qHeight: 100,
            qWidth: 3,
          },
        ],
      },
    };

    app.createCube = createCube;
    const myCube = await app.createCube(cubeDef, function(cubeData) {
      //console.log(cubeData); //returns the results of getLayout
      paintChart(cubeData.qHyperCube.qDataPages[0].qMatrix, table, tBody);
    });
&amp;lt;/script&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;where paintChart is my callback function for updating a table based on a selection.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 May 2024 17:58:07 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458372#M20725</guid>
      <dc:creator>Jeffrey_Goldberg</dc:creator>
      <dc:date>2024-05-31T17:58:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to handle data using enigma and nebula.js?</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458667#M20730</link>
      <description>&lt;P&gt;Thanks, &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/45015"&gt;@Jeffrey_Goldberg&lt;/a&gt;, for the support.&lt;/P&gt;
&lt;P&gt;Yes, I have already used qlik-embed in another project. I wanted to try nebula.js because, honestly, it’s not clear to me which is the best approach to embed existing charts in a mashup.&lt;/P&gt;
&lt;P&gt;Both of them work, even if nebula.js can’t embed all the native object types, like the filter pane, for example.&lt;/P&gt;
&lt;P&gt;Regarding creating hypercubes, thanks for the link to qlik-api-ts. I didn’t know about it. I’ll try it today.&lt;/P&gt;
&lt;P&gt;In your opinion, what is the best solution then? Should I switch to qlik-embed for existing objects and qlik-api-ts for hypercubes and variables?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Jun 2024 08:38:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/How-to-handle-data-using-enigma-and-nebula-js/m-p/2458667#M20730</guid>
      <dc:creator>cristian_dalsanto</dc:creator>
      <dc:date>2024-06-03T08:38:28Z</dc:date>
    </item>
  </channel>
</rss>

