3
Getting Started Newsletters Store Products Services & Support About SCN Downloads Industries Training & Education Partnership Developer Center Lines of Business University Alliances Events & Webinars Innovation Log On Join Us Hi, Guest Search the Community Activity Communications Actions Browse SAP BusinessObjects Design Studio Tweet Introduction In my blog post Making a Case for a Larger SDK Result Set, I described the scenario of a scorecard component as a realworld example of situations where a larger result set may be needed for SDK components than currently permitted. This followon post is inspired by feedback from Jeroen van der A. Rather than reiterating the SDK result set limit issue, the intent here is to focus on design considerations for developing an SDK scorecard component. Although a scorecard component is on the latest Design Studio Roadmap, I thought it could make for some interesting discussion to see how we might approach implementing this as an SDK component, since such a component seems to be a common question and request on the SCN. I will make a disclaimer though that this post will not conclude with a link to a fully functional SDK scorecard component (forgive me ), since the scope is only to evaluate the design considerations and engage the community in discussion and feedback as such. Setting the Scene Rather than starting completely from scratch, I came across a good example from HighCharts that could be adapted for reference purposes. I have edited the HighCharts example with my own sample data set as shown below: A live preview is available here and for those who like to tinker the complete code is here. Design Considerations In my view the main design consideration is how to define the layout of the result set to cater for the following scorecard requirements: 1) Columns with a single value In the scorecard above Scheduled Flights (CY), Delayed Flights (CY) and Average Delay (min) represent examples of such columns. 2) Columns with a sparkline chart which specifies a fixed set of dimension members In the scorecard above the Delay Groups Column Chart is based on 4 Delay Groups across the horizontal axis: Delay 0 to 14 mins, Delay 15 to 29 mins, Delay 30 44 mins, Delay 45 59 mins. 3) Columns with a sparkline chart which specifies a dynamic set of dimension members In the scorecard above the Daily Delays Line Chart is based on up to 31 days representing each day of the month. So how do we best represent this in the underlying data source definition and initial view? Two possibilities are shown below: a) Each dimension member is defined as an individual measure in the columns: Design Studio Innovation Series Topic 4: Anatomy of an SDK Scorecard Component A Design Dilemma Posted by Mustafa Bensan in SAP BusinessObjects Design Studio on Apr 30, 2015 9:29:17 AM 1 Like

Design Studio Scorecard

Embed Size (px)

DESCRIPTION

Design Studio Scorecard

Citation preview

  • 17/6/2015 DesignStudioInnovationSeriesTopic4:Anat...|SCN

    http://scn.sap.com/community/businessobjectsdesignstudio/blog/2015/04/30/designstudioinnovationseriestopic4anatomyofansdkscorecardcom 1/3

    GettingStarted Newsletters Store

    Products Services&Support AboutSCN Downloads

    Industries Training&Education Partnership DeveloperCenter

    LinesofBusiness UniversityAlliances Events&Webinars Innovation

    LogOn JoinUsHi,Guest SearchtheCommunity

    Activity Communications Actions

    Browse

    SAPBusinessObjectsDesignStudio

    Tweet

    IntroductionInmyblogpost MakingaCaseforaLargerSDKResultSet,IdescribedthescenarioofascorecardcomponentasarealworldexampleofsituationswherealargerresultsetmaybeneededforSDKcomponentsthancurrentlypermitted.Thisfollowonpostisinspiredby feedbackfrom JeroenvanderA.RatherthanreiteratingtheSDKresultsetlimitissue,theintenthereistofocusondesignconsiderationsfordevelopinganSDKscorecardcomponent.AlthoughascorecardcomponentisonthelatestDesignStudioRoadmap,IthoughtitcouldmakeforsomeinterestingdiscussiontoseehowwemightapproachimplementingthisasanSDKcomponent,sincesuchacomponentseemstobeacommonquestionandrequestontheSCN.IwillmakeadisclaimerthoughthatthispostwillnotconcludewithalinktoafullyfunctionalSDKscorecardcomponent(forgiveme ),sincethescopeisonlytoevaluatethedesignconsiderationsandengagethecommunityindiscussionandfeedbackassuch.SettingtheSceneRatherthanstartingcompletelyfromscratch,IcameacrossagoodexamplefromHighChartsthatcouldbeadaptedforreferencepurposes.IhaveeditedtheHighChartsexamplewithmyownsampledatasetasshownbelow:

    Alivepreviewisavailablehereandforthosewholiketotinkerthecompletecodeishere.DesignConsiderationsInmyviewthemaindesignconsiderationishowtodefinethelayoutoftheresultsettocaterforthefollowingscorecardrequirements:1)ColumnswithasinglevalueInthescorecardaboveScheduledFlights(CY),DelayedFlights(CY)andAverageDelay(min)representexamplesofsuchcolumns.2)ColumnswithasparklinechartwhichspecifiesafixedsetofdimensionmembersInthescorecardabovetheDelayGroupsColumnChartisbasedon4DelayGroupsacrossthehorizontalaxis:Delay0to14mins,Delay15to29mins,Delay3044mins,Delay4559mins.3)ColumnswithasparklinechartwhichspecifiesadynamicsetofdimensionmembersInthescorecardabovetheDailyDelaysLineChartisbasedonupto31daysrepresentingeachdayofthemonth.Sohowdowebestrepresentthisintheunderlyingdatasourcedefinitionandinitialview?Twopossibilitiesareshownbelow:a)Eachdimensionmemberisdefinedasanindividualmeasureinthecolumns:

    DesignStudioInnovationSeriesTopic4:AnatomyofanSDKScorecardComponentADesignDilemmaPostedbyMustafaBensaninSAPBusinessObjectsDesignStudioonApr30,20159:29:17AM

    1Like

  • 17/6/2015 DesignStudioInnovationSeriesTopic4:Anat...|SCN

    http://scn.sap.com/community/businessobjectsdesignstudio/blog/2015/04/30/designstudioinnovationseriestopic4anatomyofansdkscorecardcom 2/3

    AverageUserRating

    (0ratings)

    Tweet

    Underthisapproachwewouldmapeachofthemeasurecolumnsintheresultsettothecorrespondingscorecardcolumnwithacolumnindex,eitherindividuallyorbyspecifyingarange.Ithasthebenefitofacompactresultset.NoissuesforthesinglevaluecolumnsortheDelayGroupsparklinecolumnchartwithasmallfixednumberofxaxisdimensionmembers.However,weneedtocreateindividualmeasuresforeachofthe31possibleindividualtimedimensionmembersfortheDailyDelaysLineChartcolumn,whichisnotatypicalapproach.Nowhowdowehandlethescenariowherethenumberofdaysinthemonthvariessothatthesparklinechartdisplayscorrectly?:i)Specifyan"Ignorezerosatend"optionbutthenhowdoweknowifthezerovalueisduetothedaynotexistingorgenuinelyhasazerovalue?Ormaybethisdistinctiondoesn'tmatterincontext?ii)Dynamicallyfilterouttheredundantdaymeasuresattheendbasedonthedaysinthemonth.b)Dimensionmembersarelistedinrowswithacorrespondingsinglemeasureinthecolumns:

    Underthisapproach,sincethedimensionmembersarelistedintheresultsetrows,theissueofdynamicnumberofitemsfortheDailyDelaysLineChartistakencareofbutattheexpenseofasignificantlylargerresultset.Additionally,becausewehavemorethenonedimensionacrossthetwosparklinecharts(DelayGroupandDayofMonth),clientsideaggregationwouldberequiredforeachofthecharts,whichisnotidealassuchaggregationshouldpreferablybelefttotheOLAPengine.Sothere'ssomefoodforthought.I'dbeinterestedinanyfeedbackabouttheaboveoptionsandideasforanyotherpossibleapproaches.BlogSeriesIndex: DesignStudioInnovationSeriesWelcome

    781Views Categories:SDK Tags:sapzen,business_objects_design_studio,design_studio,design_studio_sdk

    1Like

  • 17/6/2015 DesignStudioInnovationSeriesTopic4:Anat...|SCN

    http://scn.sap.com/community/businessobjectsdesignstudio/blog/2015/04/30/designstudioinnovationseriestopic4anatomyofansdkscorecardcom 3/3

    FollowSCNSiteIndex ContactUs SAPHelpPortalPrivacy TermsofUse LegalDisclosure Copyright

    6Comments

    Like(1)

    IngoHilgefortApr30,20154:05PM

    HelloMustafa,tosomedegreesitdependsontheresultsetandsomeproblemsyoucansolveintheresultsetandtheotherhalfdependsonhowgoodtheactualcomponentwasdesigned.Ascorecardispartofourupcomingreleaseaswellbasedontheexampleyoushowinghere(http://www.highcharts.com/demo/sparkline)andweareinthefinaltestingstagesalready.SoIwouldnotnecessarycallita"designdilemma".Inmostscenarioswewillseeyourfirstexamplebeingusedmyopinion.asmentionedthescorecardwillbetheresoon.regardsIngoHilgefort,VisualBI

    Like(0)

    MustafaBensanApr30,201511:52PM(inresponsetoIngoHilgefort)

    HiIngo,Thanksforthefeedback.Iagreethatoption1isthebestapproachofthetwo,althoughIdon'treallyliketheideaofhavingtocreateindividualmeasuresforeachtimeperiodsincethisisnothowbackendqueriesaretypicallydesigned.Iguessit'sthemostappropriatecompromisefornowthough.Regards,Mustafa.

    Like(1)

    MichaelHowlesApr30,20155:41PM

    Thiswillremainalocalprojectionand/orresultsetvolumedilemmawhereveracomponentneedstoshowmorethanonelevelofgranularityatthesametime.(Asyouhaveillustratedinyourexample.)Wecouldputthisdilemmatobedifcomponentssupportedmorethanonedatasource,inmyopinion.

    Like(0)

    MustafaBensanApr30,201511:38PM(inresponsetoMichaelHowles)

    Agreed,Michael.Hopefullymultipledatasourceassignmentbecomessupportedinfuture.

    Like(1)

    JeroenvanderAApr30,20156:43PM

    Himustafa,themainproblemisthatyougotbasicallyatwodimensionaltablethatneedstobetranslated.InBWwearrangedsomethingswithusingfilteredmeasures,currentperiod,budgetcurrentperiod+anxamountofpreviousperiodsforagraph.AsdiscussedearlierIusedd3.nesttoincludethehierarchicalstructure.bestoffcoursewouldbemultipledatasources.Oratablelikecomponentwhereyoucouldputseveraldifferenttypeofcomponentsineachfield.Eachcomponentcouldholdit'sowndatasource,butthetablewouldrenderarowforeachinstanceofadimensionandautomaticallypassesthatfiltertotheunderlyingcomponentskindaliketheforeachfeatureinD3.Jeroen

    Like(0)

    MustafaBensanApr30,201511:43PM(inresponsetoJeroenvanderA)

    HiJeroen,That'sveryhelpfulfeedback,thanksverymuch.Withrespecttothe"xamountofpreviousperiodsforagraph",didyouhavetosettheseupasindividualmeasures(asperOption1above),orwereyouabletoachievethedesiredresultbasedonasinglemeasurecombinedwiththetimedimension(asperOption2)?Regards,Mustafa.