Skip to Content

SCN Lumira Designer 2.0 SDK Components

TL;DR

  • If you are on Lumira Designer 2.0 SP02, please download updated open source extensions here.
  • If you have a new problem starting in Lumira Designer 2.0 SP02 with the components, report them on GitHub Issues here.

  • If you are on Design Studio 1.6, you can continue to use your old download link (referenced below.)

Background

Now that Lumira Designer 2.0 SP02 is GA, some of you may be trying to install the older SCN Design Studio 1.6 SDK Components that you were using in Design Studio.  For the most part, these are technically compatible without any effort.  However, there are now some subtle changes to the BI Action Language engine that have broken some things.  While I tested as much as I could during earlier betas, it is a big job to do, so inevitably I’ve missed some things.  I’m happy to correct anything that has been missed in Lumira Designer 2.0 going forward.

What’s Been Going On?

It’s been a quiet year around SCN.  I’ve not been as motivated to release any new features because of the looming 2.0 release, and wanting to avoid any potential additional regression/rework.  I’ve had some amount of “writer’s block” where I’ve not been able to think of something new to throw together.  Also, being a Dad takes more time as kids get older.  Also I’ve been playing too much Overwatch 🙂

Fellow SDKer Karol Kalisz has been a major contributor to the existing SDK content, however as time goes on, our priorities, roles, personal interests and professional assignments change.  As a result, he’s been also noticeably absent lately.

Since Karol has previously been key in ensuring that releases do not wither into too much disrepair, it’s critical that someone carry the torch to not leave anyone high and dry with Lumira Designer 2.0 regressions.

For this reason, some housekeeping changes are in order, that I am going to take on and will mention below.

Mini-FAQ:

  • New Download Link

    Instead of trying to maintain one package that can support Design Studio 1.6 and Lumira Designer 2.0, as well as just making a “clean break” in some ways from the old branding name, we have a new download link for Lumira Designer 2.0:

    Download Link

    This new download package will free us up to operate with any future SDK enhancements as a logical break from the 1.x designs.

    (Note, all extensions you had in 1.6 are still available, and will be maintained here, not the old download.)

  • Help, something stopped working in Lumira Designer 2.0!

    You’re almost in the right place!  Please log any bugs in the Issues page on GitHub.  It’s a better way to track issues than in blog comments on SCN.

    GitHub Issues

  • Help, I don’t know what Component X does!

    Please place a comment below!  Someone else might have the same question!


If you are not an SDK developer, you need not read further, the rest of this blog is now about some technical source code changes.

New Source Code Repository

For those of you who want the Eclipse Source Code projects, I’ve also set up a new GitHub Repository here:

https://github.com/org-scn-design-studio-community/lumiradesignercommunityext_src

For reference, the old source code repository was here:

https://github.com/org-scn-design-studio-community/sdkpackage

The old repository will remain as-is and meant for Design Studio 1.6 only.  All new development and source code will be published in the new repository ‘lumiradesignercommunityext_src

33 Comments
You must be Logged on to comment or reply to a post.
  •  

    Mike, I was trying to figure out how to use the Vega chart, do you know if anyone has written anything about how to use it yet?  Also, thanks for getting this all setup and usable in 2.0.

  • Hi Mike,

    Lumira Designer 2.0 SP02 Extensions link is not working. It says “No server to handle the request”. Also, i am using the Lumira Designer 2.0 SP01. Will this SDK extensions work for SP01 as well?

     

    Waiting for your reply.

    Thanks in Advance.

     

    Regards,

    Chandra.

    • Hi Chandra,

      It looks like GitHub is having intermittent HTTP 500 issues this morning unrelated to extensions when trying to download files raw.  Try downloading again later.

  • Hi Mike,

     

    is there a Component like the UI5 MultiComboBox?

    i can’t currently select multiple values in a drop-down Box.

     

    any Idea? thank you

    BR Younes

  • Hi Mike,

    Do you know if SAP or any other vendors hold SDK development trainings?  We have customers that have unique dashboard requirements that we couldn’t find in some of the SDKs out there (i.e. we’re looking at charts that could display data from calculations done in the backend or through JavaScript).  The only way to circumvent this problem is to learn how to develop some of our charts/metrics ourselves.  I was curious if you know of any formal training for SDK development?  Thanks for your input.

  • Hi Mike,

    In lumira designer when i have downloaded the org.scn community basics SDK, donut was not part of the  compoenents..Do we have any alternative approach to get donut in to lumira designer?

    BR,

    Lakshmikanth Adharapurapu

    • Hi Matt,

      Only reason is why i did not considered using  lumira inbuilt donut is we are migrating the dasboard from design studio to lumira..In design studio we have used SDK donut and during migration donut is getting rejected because it is not supported in sapui5m mode..Migration process without SDK donut will break of scripting and we have to follow some manual corrections in the scripting…However i have resolved the issue by using lumira donut however i need to trick the donut using css on text box to adjust the donut to bit more thinner from cosmetic point of view and then i have adjusted the broken java script code which caused some manual corrections but managed :)…

       

       

  • Hi Mike

    Thanks for the blog. We are havin issues with most of our old DesignStudio Reports after converting them. All of them are using the Component Manager. Is there a known issue and do you have any suggestions on how to try to solve this?

    BR Clemens

  • Hi Mike

    This would be the error message we receive:

    BR Clemens

    Message: org.mozilla.javascript.EcmaError: ReferenceError: “getComponentsFromGroup” is not defined. (CMP_MANAGER.getDataSourcesFromGroup()#3)
    Stack trace: com.sap.ip.bi.zen.rt.framework.jsengine.JsEngineException: org.mozilla.javascript.EcmaError: ReferenceError: “getComponentsFromGroup” is not defined. (CMP_MANAGER.getDataSourcesFromGroup()#3)
    at com.sap.ip.bi.zen.rt.framework.jsengine.rhino.RhinoJsEngine.handleError(RhinoJsEngine.java:194)
    at com.sap.ip.bi.zen.rt.framework.jsengine.rhino.RhinoJsEngine.doRunScript(RhinoJsEngine.java:88)
    at com.sap.ip.bi.zen.rt.framework.jsengine.AbstractJsEngine.runScript(AbstractJsEngine.java:12)
    at com.sap.ip.bi.zen.rt.framework.jsengine.rhino.RhinoJsEngine.runScriptWithErrorLogging(RhinoJsEngine.java:106)
    at com.sap.ip.bi.zen.rt.framework.jsengine.rhino.RhinoScriptInterpreterBialService.runScript(RhinoScriptInterpreterBialService.java:182)
    at com.sap.ip.bi.zen.rt.framework.jsengine.rhino.RhinoScriptInterpreterBialService.interprete(RhinoScriptInterpreterBialService.java:136)
    at com.sap.ip.bi.base.command.impl.Command.interprete(Command.java:191)
    at com.sap.ip.bi.webapplications.runtime.impl.page.Page.processScriptCommand(Page.java:4067)
    at com.sap.ip.bi.webapplications.runtime.impl.page.Page.processCommandSequence(Page.java:3872)
    at com.sap.ip.bi.webapplications.runtime.impl.page.Page.doProcessRequest(Page.java:2105)
    at com.sap.ip.bi.webapplications.runtime.impl.page.Page._processRequest(Page.java:670)
    at com.sap.ip.bi.webapplications.runtime.impl.page.Page.processRequest(Page.java:4332)
    at com.sap.ip.bi.webapplications.runtime.impl.page.Page.processRequest(Page.java:4324)
    at com.sap.ip.bi.webapplications.runtime.impl.controller.Controller.doProcessRequest(Controller.java:1241)
    at com.sap.ip.bi.webapplications.runtime.impl.controller.Controller._processRequest(Controller.java:1095)
    at com.sap.ip.bi.webapplications.runtime.impl.controller.Controller.processRequest(Controller.java:1061)
    at com.sap.ip.bi.webapplications.runtime.impl.controller.Controller.processRequest(Controller.java:1)
    at com.sap.ip.bi.server.runtime.sevice.impl.BIRuntimeServerService._handleRequest(BIRuntimeServerService.java:519)
    at com.sap.ip.bi.server.runtime.sevice.impl.BIRuntimeServerService.handleRequest(BIRuntimeServerService.java:967)
    at com.sap.ip.bi.server.execution.engine.runtime.LocalBIExecutionService.executeRequest(LocalBIExecutionService.java:34)
    at com.sap.ip.bi.zen.rt.client.handler.designer.LocalExecutionAdapter.executeRequest(LocalExecutionAdapter.java:39)
    at com.sap.ip.bi.zen.rt.client.handler.RuntimeRequestHandler.handleRequest(RuntimeRequestHandler.java:28)
    at com.sap.ip.bi.zen.rt.client.handler.designer.DesignerRuntimeRequestHandler.handleRequest(DesignerRuntimeRequestHandler.java:33)
    at com.sap.ip.bi.zen.rt.client.handler.MainHandler.executeBiRequest(MainHandler.java:69)
    at com.sap.ip.bi.zen.rt.client.handler.MainHandler.handleRegularRequest(MainHandler.java:57)
    at com.sap.ip.bi.zen.rt.client.handler.MainHandler.handleRequest(MainHandler.java:35)
    at com.sap.ip.bi.zen.rt.client.handler.PathHandler.handleRequest(PathHandler.java:54)
    at com.sap.ip.bi.zen.rt.client.handler.designer.DesignerPathHandler.handleRequest(DesignerPathHandler.java:56)
    at com.sap.ip.bi.zen.rt.client.handler.AbstractSupportabilityHandler.handleRequest(AbstractSupportabilityHandler.java:25)
    at com.sap.ip.bi.zen.rt.client.handler.AbstractFrontServlet.handleRequest(AbstractFrontServlet.java:73)
    at com.sap.ip.bi.zen.rt.client.handler.AbstractFrontServlet.handleRequest(AbstractFrontServlet.java:29)
    at com.sap.ip.bi.zen.rt.client.handler.AbstractFrontServlet.doPost(AbstractFrontServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at com.sap.ip.bi.zen.rt.client.handler.AbstractFrontServlet.service(AbstractFrontServlet.java:66)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl$LegacyServlet.service(HttpServiceRuntimeImpl.java:1232)
    at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
    at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:50)
    at com.sap.ip.bi.zen.webserver.designer.ZenSessionFilter.doFilter(ZenSessionFilter.java:57)
    at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl$LegacyFilterFactory$LegacyFilter.doFilter(HttpServiceRuntimeImpl.java:1191)
    at org.eclipse.equinox.http.servlet.internal.registration.FilterRegistration.doFilter(FilterRegistration.java:118)
    at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:45)
    at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:71)
    at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:98)
    at org.eclipse.equinox.http.servlet.internal.HttpServiceRuntimeImpl.doDispatch(HttpServiceRuntimeImpl.java:372)
    at org.eclipse.equinox.http.servlet.internal.servlet.ProxyServlet.service(ProxyServlet.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:357)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:499)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Thread.java:808)
    Caused by: org.mozilla.javascript.EcmaError: ReferenceError: “getComponentsFromGroup” is not defined. (CMP_MANAGER.getDataSourcesFromGroup()#3)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
    at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3750)
    at org.mozilla.javascript.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1794)
    at org.mozilla.javascript.ScriptRuntime.getNameFunctionAndThis(ScriptRuntime.java:2188)
    at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1308)
    at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
    at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
    at com.sap.ip.bi.zen.rt.framework.jsengine.rhino.CustomContextFactory.doTopCall(CustomContextFactory.java:77)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
    at org.mozilla.javascript.Context.callFunctionWithContinuations(Context.java:1172)
    at org.mozilla.javascript.Context.executeScriptWithContinuations(Context.java:1139)
    at com.sap.ip.bi.zen.rt.framework.jsengine.rhino.RhinoJsEngine.doRunScript(RhinoJsEngine.java:78)
    … 62 more

  • Hi Mike,

    we are currently working in Design Studio 1.6 in some reports with the SDK Result Set Information 2.0 to be able to get the number of the rows. Now, we plan to upgrade our reports to Lumira 2.x and recognize that the Result Set Information to Count the number of rows are no more available. Is it planned to get also this feature available in SAP Lumira in the future or do you have another idea how to get the number of rows in a Standard crosstab of Lumira Designer?

    Thanks in advance for your Feedback.

    Best regards
    Matthias

  • Hi Mike

    I have answered my question above! and read your post properly! 🙂

     

    Next question though, upon trying to deploy the platform extensions i get a message saying do i want to overwrite the old SCN community addons which i selected yes but then receive an error that there is a duplicate entry and it cant update?

     

    Could not commit object ‘org.scn.community.basics’ because another object with the same name and type already exists under object ‘Design Studio SDK Extensions’. (FWB 00026)

     

    Do i need to uninstall the old one first?

     

  • Hi Mike

    I have a requirement where I have to merge two tables into one.

    Both the tables have same fields as you can see. Only difference is the filter.

    Left table is showing data for the selected Period(Listbox) while the right table is displaying data for ” less than or equal to” the selected Period.

    The User wants to merge both datasets into one as shown in second image.

    I did this by setting ‘0’ column width to zero in Right Table.But this is not the right way as when I apply some of the global filters then number of records in both the table gets different and then this trick fails.

     

     

    Is there any SDK component available for doing this??

  • Hello Mike,

    Good day!

    I am facing issues with SCN sdk in Lumuira 2.1 Designer.

    I am trying to open dashboard build in Design studio 1.6 using the following extensions:

    Now when I am trying to open the dashboard in Lumira 2.1 Designer I get following error

    Please let me know which SCN sdks I should download and install.

    It will be a great help if you can provide me a link for the sdk.

    Thanks and Regards,

    Rafat

     

  • Hi Mike,

     

    I currently trying to use Calendar Visualization component however when I am trying to add it on a panel with CSS styling, I am encountering an out of memory error. As well can you please let me know on how the colors works and if you managed to add markers(symbols)?  Can you please advise if using the Calendar Visualization component I can achieve below? It is a visualization about an employees absence depending on the type of absence.

    Currently using SAP Lumira Designer 2.1

    Your assistance will be greatly appreciated.

     

    Regards,

    Sheena

    • The Calendar component at one time was supposed to fill that exact use case, however it was never finished due to time constraints and nobody really seemed to interested, so there wasn’t any motivation to complete it.

  • IS anybody actively updating these components?

    I wanted the KPIView to be updated to UI5 mode, i tried looking at the Source code and can see some references to modes but whatever i change doesnt seem to show the component in the lists. some of the files reference that this is already UI5 compatible but i guess it needs to be UI5 M compatible.

    Would really appreciate any help, even if someone can tell me where i need to change in teh source.

    • Alex,

       

      I think it’s safe to say nobody is actively updating these components any more.  If anybody wants to modify/maintain them, they are free to do so, however those of us who authored them have moved to other assignments or areas of interest.

      • such a shame, these components have been a great help in my work with Design Studio/Lumira creations.

        Whats the best resources to learn how to create these? I know there is the SDK guide on the SAP website but are there any other good resources that you have used or know of? I’m sure i could pick it up given the time and more hands on examples to work through.

        • Hey Alex,

          I know how you feel, however nothing (free) lasts forever, I’m afraid.  Like Karol, I’ve been yanked “out of retirement” from time to time by some folks out of desperation who have a project-breaking requirement that could be filled if one of the SDK components “could just do this ONE thing”, etc however ongoing active maintenance takes time that I just no longer can devote actively.  It would be nice if more members of the community could have actively contributed to these components, which was the goal all along, however with the exception of a handful of members, it was mostly people downloading and using, so the “support pool” remained small.  I think we see areas where open source projects thrive, however my feeling is that this is mostly in areas outside of vendor plugins which is a quite narrow area relative to more accessible projects for hobbyists.  I think others would agree.

          I’d highly recommend that if you are wanting to use these open source components, then definitely consider learning how they work and modifying them/making them your own so that you can support them longer term.  While there are plenty of ones that remain working quite well, some, especially those that are susceptible to arbitrary UI5 library changes over the years, are prone to need fixes over time.

          The best resource to learn this stuff would be to go through the SDK guide examples, but also previous SCN blog posts and all the Open Source code that is now out there on GitHub (if dated in some cases, and in varying states of quality, of course.)  Fortunately, there’s quite a bit of blog posts dating back to the “early days” of Design Studio 1.3 that are still mostly relevant.  Also look for a series of blog posts on SCN by David Stocker that he did a few years back that explain each line of code in the various files.

          • Thanks Mike, i shall print out the SDK guide in teh first instance and go from there.

            Hopefully i can try and fix the issues i see in the Components and start comitting these fixes to the github repo.

            Theres life in the old dog yet!

          • I fixed my first issue 🙂 I just need to understand how i fixed it!

            There is some code for an OnClick event in the KPITile which only works when clicking on the chart in the Tile. If the chart is removed clicking anywhere on teh tile does nothing.

            There is also an onselect event which i have not yet got to fire.

            Looking at the KPIView code there is some code which i have copied and pasted into the KPITile.sj in the relevant part of the code.

            /* COMPONENT SPECIFIC CODE – START(initDesignStudio)*/

            that._oComponents = {};
            		that.attachBrowserEvent('click', function() {
            			if(that._linkEvent == true) {
            				that._linkEvent = false;
            			} else {
            				that.fireDesignStudioEvent("onClick");
            			}
            		});

            Now clicking anywhere on the tile fires the onselect event.

             

            What i need to understand is why was teh onClick only being fired when clicking on the chart. I will need to fix that issue or remove that code and leave my insertion.

             

            The Original code for onClick was this.

            contentOnPress: function (oEvent) {
            		var that = oEvent.getSource().__owner;
            
            		var componentId = oEvent.getSource().__specification.__techKey;
            
            		that.setClickedComponent(componentId);
            		that.setSelectedKey("");
            		that.fireDesignStudioPropertiesChangedAndEvent(["clickedComponent", "selectedKey"], "onClick");
            		
            	},

            Is the contentOnPress: part causing the issue?

            Will reading the SDK help to answer these questions? Id rather try to figure this out then have one of you guys tell me the answer! Hints will be accepted though! 🙂

  • Hi Mike,

     

    i have a question.

     

    How can i dynamically change input selection for dataSource.getDataSelections()? For example:

     

    dataSource.getDataSelections({“CCAWMKT”: “*”,”(MEASURES_DIMENSION)”:[“00O2TMQW2SV5RPCECWNUF8YEM”, “00O2TMQW2SV5RPCECWNUFE1PQ”, “00O2TMQW2SV5RPCECWNUFFSXA”]});

     

    I want to set dynamically the dimension “CCAWMKT” with a dimension variable but in JSON i can only set it manually. I thought to instantiate a new json but it’not allowed. Do you have some suggestion?

    Thanks in advance,

     

    Marco Marsico