Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
sanekagr2
Partner - Contributor III
Partner - Contributor III

Custom Properties Not Working in Nebula Extension

Hi All,

I’m trying to migrate a visualization extension from the Capability API to Nebula, using this guide:
https://qlik.dev/extend/extend-quickstarts/migrate-vis-extension-nebula/ 

In the Capability API version, custom properties work as expected.

But in the Nebula version:

  • If I add a definition section in ext.js, the extension won’t load.
  • If I move the custom property into properties, the extension loads, but the property doesn’t show up.

I tested this a few times and got the same results. Has anyone run into this before?
Any advice would be great.

Labels (3)
7 Replies
eyalnir_qlik
Partner - Creator II
Partner - Creator II

@Damien_V @Benoit_C  We’d appreciate your assistance on this

Thanks

Eyal 

@rotmangadi Qlik Sense Enterprise on Windows 

alex_colombo
Employee
Employee

Hey @sanekagr2 , where are you testing the modifications? If you are testing locally on nebula webserver, property panel modifications will not work there, you have to deploy the extension into your Qlik Server / Qlik SaaS.

About where and how to add new properties, you should add them into ext.js. Remember, after your deploy, to replace your extension from Qlik sheet, in order to see your new modifications.

sanekagr2
Partner - Contributor III
Partner - Contributor III
Author

Hi, thanks for the reply.

I'm testing the extension on Qlik Server (November 2024), after exporting it using the Nebula CLI.
The extension works, but I can't see the custom properties.

Do you perhaps have an example of a Nebula extension with custom properties?
I tried adding them to both ext.js and object-properties, but it didn't work.

Here's an example of my ext.js:

export default function ext(galaxy) {
  return {
     definition: {
      type: "items",
      component: "accordion",
      items: {
        dimensions: {
          uses: "dimensions",
          min: 1,
          max: 6,
        },
        measures: {
          uses: "measures",
          min: 2,
          max: 2,
        },
        sorting: {
          uses: "sorting",
        },
        settings: {
          uses: "settings",
        },
		MyParameter: {
          ref: "MyParameter",
          type: "string",
          label: "My Parameter",
          defaultValue: "Value",
        },
      },
    },
    support: {
      snapshot: false,
      export: true,
      sharing: false,
      exportData: true,
      viewData: true,
    },
  };
}

 

alex_colombo
Employee
Employee

Following an example of ext.js which is working for me:

export default function ext(/* galaxy */) {
 return {
   definition: {
     type: "items",
     component: "accordion",
     items: {
       exportConfig: {
         type: "items",
         label: "Export Configuration",
         grouped: true,
         items: {
           buttonLabel: {
             ref: "buttonLabel",
             label: "Button Label",
             type: "string",
             expression: "optional",
             defaultValue: "Export Button"
           },
           fileName: {
               ref: "fileName",
               label: "Exported file name",
               type: "string",
               expression: "optional",
               defaultValue: "exportedData"
           },
           cellsLimitMenu: {
             items: {
               cellsLimit: {
                   ref: "cellsLimit",
                   label: "Export data cells limit (rows * cols). 10.000 is the maximum",
                   type: "string",
                   expression: "optional",
                   defaultValue: 10000
               },
             }
           },
           userUniqueId: {
             component: "expandable-items",
             label: "User Unique Id Configuration",
             items: {
               userUniqueIdConfiguration: {
                 type: "items",  
                 label: "User Unique Id Configuration",
                 items: {
                   userUniqueIdMenu: {
                     items: {
                       userUniqueIdExpression: {
                         ref: "userUniqueIdExp",
                         label: "User Unique Id Expression",
                         type: "string",
                         expression: "optional"
                       }
                     }
                   }
                 }
               }
             }
           }
         }
       },
       settings: {
         uses: "settings"
       }
     }
   },
   support: {
     snapshot: false,
     export: true,
     sharing: false,
     exportData: true,
     viewData: true,
   },
 };
}

sanekagr2
Partner - Contributor III
Partner - Contributor III
Author

Hi, thanks for the reply.
I tried your code, but it still didn’t work on Qlik Sense. Maybe there’s an issue with the environment.

gary_mitchell2
Contributor
Contributor

Hi @sanekagr2 

We have exactly the same issue.  We have extensive experience of building extension for Enterprise but are having issues getting a Nebula extension to work.  We have tried using the Qlik Developer help documentation, CLI and the examples from GitHub.  Did you ever manage to resolve this issue?

I have also been unsuccessful in finding a compiled free example that we could use to reverse engineer to resolve our issue.

Any help would be very much appreciated.

Thanks

Gary

JoelStransky
Contributor III
Contributor III

I'm experiencing some related insanity. I'm attempting to convert my nebula extension from javascript to typescript but their interface for supernova mysteriously drops the `ext` property!

    interface VisualizationDefinition {
        qae: stardust.QAEDefinition;
        component(): void;
    }

Worse, notice the last two code samples from @sanekagr2's guide. ext is suddenly missing from the final example with zero explanation. 

I swear Qlik's front end team is all former data scientists who don't have a clue what they're doing.
"Make sure your Nebula's stardust supernova returns an ext function that receives a galaxy so that we can provide the same but different api you can access in component(). Oh and give up on googling anything because we've done nothing to differentiate from the other 3 deprecated extension libraries we gave up on."

Dude, just. What!?