Vous êtes sur la page 1sur 14

4/14/2016

HANAModelingGoodPractices.|SCN

GettingStarted Newsletters

Hi,Guest

LogOn

JoinUs

Store

SearchtheCommunity

Products

Services&Support

AboutSCN

Downloads

Industries

Training&Education

Partnership

DeveloperCenter

Activity

LinesofBusiness

UniversityAlliances

Events&Webinars

Innovation

Browse

Communications

Actions

SAPServices

HANAModelingGoodPractices.
PostedbyShivajiPatnaikinSAPServicesonMar26,20144:43:10AM
34

Share

Tweet

Like

ContributorsforthisBlog:
ShivajiPatnaik,AbaniPattanayak,ImranRashid&GordonDailey

IneveryprojectwehavebeenaskedforbestpracticesforHANAModeling.Wethoughtitisgoodideatouseour
experiencestocomeupwithabestpracticesdocument.AlltheConsultantscontributedinthisdocumenthave
experiencewithmultipleHANAimplementationprojects.WeusedourcombinedexperiencestocomeupwithHANA
bestpractices.WewillbeenhancingthisdocumentbasedonanynewfindingsinfutureHANAReleases/
enhancements.
WewillbecoveringfollowingTopics:
1.)EnvironmentSetup
2.)DatabaseTables/SQLs
3.)NamingConventions
4.)Modeling
4.1)AttributeViews
4.2)AnalyticViews
4.3)CalculationViews
4.3.1)SCRIPTEDCALCULATIONVIEWS
5.)Security
6.)Performance
7.)Migrations
8.)Miscellaneous(commonerrors)

9.)BestPracticestoBuildBusinessObjectsUniverseagainstHANAModels.
10)Someusefullinks

1.)ENVIRONMENTSETUP:

PACKAGE:

Createonetoplevelpackageforallofthecustomerscontent(ifacceptabletothecustomer).
Createasubpackageforthecontentyouwilldeployintheproject.
Multiplesubpackagesmaybecreated,ifrequiredordesiredtoorganizealargeamountof
content.
Createallcontentmodelsunderthispackageortheappropriatesubpackages
Createseparatesubpackagesforeachgroupofrelatedcontentthatwillbedeployedtogether
asaset(e.g.,byproject).

Createonetoplevelpackagecalleddev(ordevelopment)forworkinprogress
Createasubpackageforeachdeveloper
CreateallAnalyticalandCalculationviewsundertheseplayareapackages.
Oncethedevelopmentiscomplete(includingunittesting),theseviewscanbecopied/movedtothemain
packagefortheprojectwhenitisreadytomigratebetweenenvironments.
Alwaystakebackups(ExportingContent)ofentirecontentofaproject.
ImportonlyyourcontentinsteadofCompleteProjectcontentandrestoreonlyyourstuff(Thiswill
avoidoverwritingothersstuffwhenyouimport)

OptionalCreateatoplevelpackagecalledtestorqa
Thestructureunderthispackageshouldmatchthatofthetoplevelcustomerpackageforyourcontenttobe
deployed.
Thisallowsyoutohavecodeintestingbeforecommittingittothedeploymentpackage.
Youmaycreatemultipletopleveltestpackagesforcomplexprojectswithmultipleworkstreams(thisisnot
generallyrecommendedunlessnecessary).

UseHANArepositorycheckin/out
SAPHANADevelopmentperspective(introducedinSP05)shouldbeusedtotrackversionofobjects
(insteadofdevelopermodeexport/import)

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

1/14

4/14/2016

HANAModelingGoodPractices.|SCN

DELIVERYUNIT:
Createadeliveryunitforeachgroupofrelatedcontentthatyouwilldeployfortheproject.
ThiswillbeusedforpromotingyourcontentfromDEVtoQAandPROD
Ingeneral,thedeliveryunitsshouldmatchthesubpackagesunderthetoplevelpackageforthe
customer.
Assignyourdeploymentpackages(underthetoplevelcustomerpackage)totheappropriatedeliveryunits.

DELETINGPACKAGES:
Apackagecannotbedeletedwhenitisnotempty.
Deletealltheunderlyingobjectsbeforedeletingthepackage.Thisincludessubpackages.
NotethatsomeobjectsarehiddenintheModelerperspective.UsetheHANADevelopmentPerspectivetosee
alloftheassociatedobjects(alsoyoucanchangepreferencestoseehiddenobjects)

2.)DATABASETABLES/SQLs

Schema
PlanyourSchemalayoutbeforeyoustartyourproject.
CreategenericnamestoSchemas(forex:SLTECC,DS_SCHEMA,CUSTOM_SCHEMAetc.).Ifpossible
keepsameschemanamesinallenvironments.Thiswillhelpmigrationgosmoothlyfromoneenvironment
tootherenvironment.Ifschemanamesaredifferentyoumighthavetoadjustschemaswhenyoumigrateto
newenvironments.
AlltablesreplicatedthroughSLTshouldbeinthesameschema.However,donotcreatecustomtablesor
tablesloadedthroughDSinthesameschemaastheSLTtables.
Alltablescreated/loadedthroughDataServicesshouldbeinaseparateschemafromSLTtables.
StagingtablesforETLshouldbeinaseparatestagingschema.
Customtablesorstatictablesshouldbeinaseparateschema.
TableCreation
AlltablestobeusedincontentmodelsshouldbecreatedasCOLUMNTABLESinHANAforbest
performance.(Note:DataServicesandSLTcreatecolumntablesbydefault).
Itisrecommendedtoalwaysprovideacomment/descriptiononthetableandoneachcolumnforclarity
anddocumentationpurposes.

Security
YoumustgrantSELECTprivilegesonthedatabaseschemasortablesto_SYS_REPOinordertousethe
tablesincontentmodels
Syntax:
GRANTSELECTONSCHEMA"<SCHEMA_NAME>"to_SYS_REPOWITHGRANTOPTION
GrantDMLcommandstodifferentschema
Syntax:
GRANTSELECT/UPDATE/DELETEontables/procedureto<schema_owner>
Grantindividualtableaccesstodifferentschema
Syntax:
GRANTSELECTON"<SCHEMA_NAME>"."<TABLE>"to"<SCHEMA_NAME>"WITHGRANT
OPTION

AUTOGENERATEDCOLUMNS(ConcatAttributes)

Autogeneratedcolumnsarenewcolumnsautomaticallypopulatedbasedonacalculationusingthephysicalcolumns
inthesametable.Thesehavesomeadvantagesanddisadvantages.
Syntax:
ALTERtable"<SCHEMA>"."<TABLE>"ADD(ZZYEARNVARCHAR(4)GENERATEDALWAYSAS2014')
Advantages

Disadvantages

Calculationsarepusheddowntothe
Database(insteadofmodels)

Thecodeisnotvisibleandcantbetransported(unlesstabledefinitions
arecreatedintherepository)

Increasesperformance

Thecodetocreatethecolumnsneedstobemanuallyrunacross
environmentsandneedsmaintenance

MigrationofModelstodiffenvironmentswillfailifthevirtualcolumnsor
AutoGeneratedcolumnsarenotthere

SQLs

WhileusingdatapreviewonModels

DOs

Donts

Applyafiltercondition:

SELECT*FromView

Select*fromViewWhere<Condition>
SelectCount(column)fromView

SelectCount(*)fromview

Usefollowingconversionfunctionswhilemigrationfromotherdatabases(Oracle/Teradataandetc.)toHANA.

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

2/14

4/14/2016

HANAModelingGoodPractices.|SCN

DECODEfunction(Oracle)toCASEstatementinHANA
CONVERTfunctiontoCASTstatementinHANA
TRUNCfunctiontoCASTstatementinHANA

SYSDATE,SYSTIMEorSYSTTIMESTAMPtoCURRENT_DATE,CURRENT_TIMEorCURRENT_TIMESTAMP
statementsinHANA
ConvertingBLOB/CLOBDataTypes(Oracle)toHANADatatypes:
BLOB/CLOBfieldscannotbeusedHANAmodels.However,youcancreateageneratedcolumnselecting
first5000characters(oranythingelseyoudlike)toreportonthedatastoredintheBLOB/CLOBfield.
StringfunctionslikeSUBSTRINGworksfineonNCLOBfield.ForotherBLOBtypefields,youcancastitto
VARCHARbeforeusingstringfunctions.
Substring(cast(BTESTasVARCHAR(5000)),1,10)
Concat()FunctionsinModelsareveryexpensiveandthecreateVirtualcolumns(autogeneratedcolumn)for
concatenatedtextstringswillmakemoresense.

Checkfollowinglinkforsomeadditionalinfo.
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0f2d8c9f321311041bbdc8e8e14dc9a?
QuickLink=index&overridelayout=true&58815282151702

3.)NAMINGCONVENTIONS

ThereisnohardandfastruleforHANAModelNamingconvention.However,wehavefollowedcoupleofscenarios
andyoucanpickwhichevernamingconventionyoulike.WearealsoprovidinglinkfromSAPonthistopic.
Selectaconsistentnamingconventionsthroughouttheproject
NameeveryelementinCAPITALLETTERS.
Givemeaningfulbusinessnamestoallcolumnswhichareexposedtousers.Keepthenameasshortas
possible(preferablyunder15to20chars)

Option1

OptionII

ATTRIBUTEVIEWS

DIM_DATE_AT

AT_DATE

Givebusinessnames.

Same

ColumnNames

IfcolumnisparticipatinginKeyfor
ex:SITE_KEY
Columndescriptions

SITE_DESC

TheelementusedinLabelColumn
(labelmapping)shouldberenamed
as<ATTRIBUTE>.descriptions(e.g.
REGION.descriptions)

ANALYTICALVIEWS

FACT_SALES_AV

AN_SALES

Datafoundation

IfECCyoucouldleavetechnicalnames

Same

columns

orsuffixwith_FACT

RestrictedColumns

IfexposedtousergiveaBusinessName
otherwiseRM_.

same

Ex:SOLD_AMT_US(Exposedtouser)
RM_SOLD_AMT_US(usedforinternal
calculations)
CalculatedColumns
CALCULATIONVIEWS
RestrictedColumns

BusinessNameofthemeasure

same

FACT_SALES_CV

CA_SALES

IfexposedtousergiveaBusinessName
otherwiseRM_.
Ex:SALE_AMT(Exposedtouser)

Same

CM_SALE_AMT(usedforinternal
calculations)
CalculatedColumns
ANALYTICALPRIVILEGES

BusinessNameofthemeasure

Same

AP_RESTRICTION_AT(OnATTRView)

Same

AP_RESTRICTION_AV(OnAnalytical
View)
AP_RESTRICTION_CV(OnCalcview)
HIERARCHY

HI_<BUSINESS_NAME>_PC(forParent
Childhierarchy)
HI_<BUSINESS_NAME>_LV(forLabel
basedhierarchy).

Same

INPUTPARAMETERS

IP_PARAMETER_NAME

same

VARIABLES

VA_DATE

Same

PROCEDURES

SP_PROCEDURENAME

same

CUSTOMTABLES

ZT_TABLENAME

ZT_tablename

4.)MODELING

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

3/14

4/14/2016

HANAModelingGoodPractices.|SCN

BeforeYouBegin
CheckforKeycolumnsforanyNullValuesattablelevel.
ThecolumnsthatarepartofthejoinsintheHANAmodelsshouldnotcontainanyNULLvalues(resolve
nullvaluesthroughETLorSLTjobsbeforestartingmodeling).
General
CreateallexpectedAttributeViewsfirst.
Thesewillbeusedlaterincreatinganalyticviewsandcalculationviews.
Anattributeviewcanbeusedinmultipleanalyticviewsorcalculationviews
Totheextentpossible,designyourattributeviewsascommoncomponentsthatcanbeusedin
multiplemodelstoreducemaintenanceeffort.
Decisiontreeformodeling(inorderofperformance)
AnalyticView>AttributeView>GraphicalCalcView>CalcView(CEfunction)>CalcView
(SQL)
CreateviewsStepbystep.
Whatitmeansiscreateyourviewsstepbystep.Verifyeachstepbeforemovingontothenextstep.
ForexampleincreatinganAnalyticView:Createthedatafoundationfirstandactivateitandseethe
data.Ifyourdatasetisbiguseafilterwhereyoucouldget1025rowsorlesstovalidatethemodel.
Nextaddanattributeviewjoinandactivateandcheckdata.Itmightbeslowprocessbutonceyouare
donemodelingitwillbedone.Theadvantagebydoingthisisyoucanfindanydataorjoinissuesat
everylevel.

4.1)ATTRIBUTEVIEWS:

YoumustdefineatleastoneKeyAttribute(Ex:SITE_KEY)onanattributeview.Thisistypicallythecolumn(s)
thatwillbeusedtojointheviewtoothertables/content.
Exposeonlyrequiredcolumnsusedinreportsandhierarchies.Donotcreatecolumnsforeverythingjust
becauseitsthere.
Givemeaningfulbusinessnamesforallexposedattributes.
Ingenerally,trytomakesureallattributenamesintheViewareunique.ThereshouldbenoduplicateAttributes
inotherAttributeviews.(SameattributecolumnshouldnotbeintwoAttributeViews,ingeneral)
Avoidcalculatedcolumns(exampleTo_date(),concat(),To_char()andetc.)inAttributeviews.
Calculatedcolumnscreateanimplicitcalcviewwrapperaroundtheanalyticviewandwillimpact
performance.
Considerreplacingthemwithmaterializedcolumns(orautogeneratedcolumns)intheunderlyingtable.
AlternatecreatetheminCalculatedViews.
Levelbasedhierarchiesworkinmostofthereportingtools.ParentchildhierarchiesworksonlyinAnalysis
OLAP,AnalysisOfficeorExcel.
Checkperformanceofattributeviews.QueriesonAttributeviewsshouldrespondinsecondsotherwiseitwill
impactoverallperformanceoftheviewsthatuseit.
ForDescriptioncolumnstheelementusedinLabelColumn(labelmapping)shouldberenamedas
<ATTRIBUTE>.descriptions(e.g.REGION.description)
NOTE:TherearesomeextrastepsyouneedtodoifyouarecreatingCalcviewsbasedonAnalyticalviewswith
Attributeviewsconsistsofcolumn.description.InCalcviewsitconvertscolumn.descriptiontocolumn_description
andthishastoberemappedwithcolumn.descriptioninXMLandreimportandactivateCalcviews.

4.2)ANALYTICALVIEWS

StarSchemaDesignispossiblewithanalyticalviews.
Youcandefinemeasuresonlyfromonefacttable,evenifyouhavemultiplefacttablesinyourdatafoundation.
Usedesigntimefilters/inputparameterstolimitthedataset(ifpossible).
Usejoinsoninteger/datekeycolumns(ifpossible)
CreaterestrictedmeasuresbyusingDimensionsfromattributeorfromFactkeysfromdatafoundation.
Userestrictedmeasures(wherepossible).Thisperformsbetterintermsresourceconsumption(memoryand/or
CPUtime)vs.calculatedmeasures
AvoidcreatingCalculatedAttributesinAVs.ForexampleTo_date(),concat(),To_char()andetc.Consider
movingthemtocalculationvieworpushthemtodatabaselayer(materializedorvirtualcolumn).Calculated
attributesarecomputedinthecontextofCalcEngine(eventhoughtheyareinAnalyticView),hencetherewillbe
datatransferbetweenenginesandhencelowerperformance.KeepingallthecalculationsinthecontextofOLAP
enginewillgivethebestperformance.
AfteractivatingAVcheckin_SYS_BICifitisgeneratingAV/olap(itiscalledwrappercalcview)Thismeansdata
ismovingbetweentheengines.Thisneedstobeavoided.
AvoidusingcalculationbeforeaggregationonBIGdatasets(thisisveryintensiveintermsofCPUtime).
Considermovingthesecalculationtodatabaselayer(materializedcolumnorvirtualcolumns)
IfyouhaveadesigntimefilterintheAttributeviewandifthisAttributeviewisjoinedtothedatafoundationusing
referentialjoin,thejointotheattributeviewwillbealwaysexecuted(evenifnoattributeisselectedfrom
AttributeView).Watchoutforthiswhileyouaremodeling.
BecarefulusingReferentialjoinssincethiscanleadtoinconsistentresultsifreferentialintegrityonbothsidesof
thejoinisnotassured.Ifyouarenotsure,useaLeftOuterJoinoranInnerJoin,asappropriate,forconsistent
resultsacrossqueriesemployingdifferentcolumnsfromthemodel.
UseTemporalJoin(introducedinHANASP05)formodelingslowlychangingdimension.Onlyreferentialjoin
anddate&integerdatatypesaresupported.
AvoidCompoundjoins.Thismaynotpossiblealwaysbutwatchoutforanyperformanceissues.
IfyourmodelhavemanyjoinsyoucouldalsodeployonJoinenginetogetabestperformance(possibleonly

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

4/14

4/14/2016

HANAModelingGoodPractices.|SCN

OLAPenginespecificfunctionslikeTemporalJoinisnotused)
UseInputparameterstocalculatemeasuresbasedonuserinput
Usevariablestofurtherrestrictthedatasetforbetterperformance

DISTINCTCOUNTS:
Distinctcountsinanylargedatabasesarechallenging.IfyouruncountdistinctonOLAPviewonalargefacttables
withahighnumberofdistinctvaluesconsiderusingthenote.
1941113InfluencestandardbehaviorofOLAPqueriesinadistributedHANAinstallation.

4.3)CALCULATIONVIEWS
Allviews/tablesshouldbeusedwithaprojectionnode.Projectionnodesimproveperformancebynarrowingthe
dataset(columns).
Furtheroptimizationcanbedonebyapplyingfiltersatprojectionnodes.
AvoidusingJOINnodesincalculationview.ConsiderreplacingthemwithUNIONnodes(wherepossible).
AlternatelyconsiderpushingthesejoinstoAnalyticviews.
WhileusingUnionsmakesuretherewillbenonullvaluesinMeasurecolumnsotherwiseUnionOperationwill
chock.
WhileUnioningmeasuresinUnionNodedomanagemappingsandsupply0valuesfornullmeasurescolumns.
UseInputParameters/VariablestorestrictthedatasetwithintheCalcView.Filtersshouldbeappliedasearlyas
possibleinthedataflow.IfyouarecreateaCalcViewthatunionsmultipleCalcviews(orSubCalc

views),useConstantmappinginUnionNode.Thiswillimprovetheperformanceasthequerywillonly
fetchtheresultsrelatedtotheconstantvalueofthesubCalcviewbypassingothervaluesfora
particularsubCalcviewunderneaththeunionforexecutioninreportingifneeded.(Seethepicture
below)

Calculatedcolumnsshouldbedefinedhere
Forexample:midstr(string("ERDAT"),strlen(string("ERDAT"))9,4)
Concat(String1,String2)
CalculatedColumnsarecalculatedbeforeaggregation.
Hierarchies(ifany)needtoberedefinedintheCalculationview.HierarchiesdefinedintheAttributeViewsare
notvisibleintheCalculationView.
LabelsofAttribute(LabelColumn)&DescriptionofMeasuresfromunderlyingAttribute/AnalyticorCalculation
viewsarenotvisibleintheCalculationView.Theseneedtoberemapped.
EnableMultidimensionalreporting(introducedinSP06)shouldbeused.
IftheviewwascreatedinSP05orearlierrevision,thiscanbeenabledbyclickingSwitchtoAggregation
inthecontextmenuoftheprojectionnode(justbelowthesemanticnode)

STARJOINSINCALCVIEWS:
IntroducedinSP07.YoucanselectmultiplemeasuresfrommultiplefactstablesinoneStarmodeltosupport
3rdNormalFormdesign.
CheckthefollowingURLformoreonStarJoinsinCalculationviews.
http://scn.sap.com/community/services/blog/2014/02/13/hanasp07starjoin

4.3.1)SCRIPTEDCALCULATIONVIEWS
DONOTmixthefunctionsofSQLScriptandCEFunctionsinacompositemodel
(Forexample:donotcodeoneCalculationViewwithSQLScriptanduseitinsideanotherCalculation
ViewwithCEFunctions).Theperformancewillbeverybad.
TrytoexposeONLYrequiredfieldsintheCE_PROJECTIONS
Passonallparametersasrequiredtothelowestlevel(thisappliestoGraphicalorScriptbasedViews).
Reducethesizeofthedatasetasearlyaspossibleinthedataflow.Thiscanbedonebyapplyingstatic
filtersorapplyingdynamicfiltersusingparametersatthelowestlevel
Minimizethesizeofanyintermediateresultsetsincomplexprocessing.Donotincludeanyextraattribute

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

5/14

4/14/2016

HANAModelingGoodPractices.|SCN
columnsthatmayincreasetherowsofaggregatedresultsbeingpassedbetweennodesinthedataflow.
Avoidextremelylargeintermediateresultsets,eveniftheywillbereducedoraggregatedbeforethefinal
resultisreturnedtotheclient.Thesecanhavehighmemoryrequirements.
Performcalculationsatthelastnodepossibleinthedataflow(ideallydoneinfinalaggregationor
projection).Thiswillreducetheamountofdatarowsonwhichyouareperformingthecalculationsalso
reducethenumberofcolumnsbeingtransferredfromonenodetoanother.
Insomesituations,youcanuseaunionandthenaggregatetheresultsinsteadofusingajoinforbetter
performance.

ReduceComplexityofSQLStatements:BreakupacomplexSQLstatementintomanysimpler
ones.ThismakesaSQLScriptprocedureeasiertocomprehend.
IdentifyCommonSubExpressions:Ifyousplitacomplexqueryintologicalsubqueriesitcanhelp
theoptimizertoidentifycommonsubexpressionsandtoderivemoreefficientexecutionplans.
UnderstandtheCostsofStatements:Employtheexplainplanfacilitytoinvestigatethe
performanceimpactofdifferentSQLqueriesusedinscripts.
ReduceDependencies:AsSQLScriptistranslatedintoadataflowgraph,andindependentpathsin
thisgraphcanbeexecutedinparallel,reducingdependenciesenablesbetterparallelism,andthus
betterperformance.

TESTING:Dounittestingforeachmodelandcreatetestcasesdocument.Thiswillhelptocreatea
deliverabledocumenttoclient.

5.)SECURITY

DonotusetheoutoftheboxSYSTEMusertomanagedaytodaydatabaseadministration
CreateDelegatedAdministratorstododaytodayjobanduseSystemuserifnecessary.
CreateSecurityModel(Whichusercanseewhatdata)
USERS/ROLESwillbecreatedONLYbyDelegatedSYSTEMAdministratorUsers.
Usethedesigntimeroleinsteadoftheruntimerole(throughCreaterole/userSQLstatement)
Usedesigntimerolestocreatesecurity.
CreatingUserwillalsocreateaSchemabydefault.
ByDefaultSYSTEMdonothaveaccesstoothersusersSchemas.Systemuseroranyotherusercansee
dataonlywhenSchemaUsersGrantsaccesstoUsersandSystemUsers.
CreateaSecuritymodel(whichusercanseewhatcontent)beforeyouimplementHanadatalevelsecurity.
Considerusingrowlevelsecurity.
HANAOutoftheboxtheCOLUMNLevelsecurityfeatureisnottherebutthisneedtobehandledin
ModelingbycreatingonebasemodelwithSecuredColumnsandcreateanotherviewwithhidingallthe
securedcolumns.
HANAsecurityisimplementedwithAnalyticalprivileges(APs)andAPswillimprovetheperformanceasit
appliesfilterstomodels.
ConsiderusingDynamicAnalyticPrivileges(introducedinSP05)wheneverpossible.Thiswillsimplifythe
process.
AlwayscreaterolesandassignrequiredprivilegestoroleandassignRolestousers.
Donotgrant_SYS_BI_CP_ALLprivilegetoanyrole/user.
Createadevelopmentprojecttostoreyourdesigntimeobjectsinasharedrepository.
Designsecurityusingthedesigntimeroles.
DesigntimeroleisportabletoanotherSAPHANALandscapethroughlifecyclemanager.

6.)PERFORMANCE

CreateallcalculationsinAnalyticalorCalculationviews.AvoidcreatinganycalculationsinReporting
layer(Universe&Frontendtools).
LimitoutputcolumnsusingProjectionnodes
Considerpartitioninglargetablestogetbetterperformance
Max2Brecordspertable(ortablepartition)andmax1000partitionspertable.
ForMoredetailscheckfollowinglink

https://cookbook.experiencesaphana.com/bw/operatingbwonhana/hanadatabaseadministration/system
configuration/partitioninganddistributionlargetables/

Donotcreateworkingtablesindifferentschemas.Thiswillcreatesecurityproblemsonownerships.Insteadof
thatcreateaseparateschemaandcreateallworkingtablesanduseitinyourModeling.
Avoidcompositeprimarykeyswheneverpossible.Compositeprimarykeycreatesadditionalindexesonthe
table,whichwilltakeadditionalspaceandhitstheperformance.Ifyouhavetouseitbeawareofthisfact.
IfpossibleavoidJoinsonCharactercolumns.
AnalyzetheperformanceoftheQuery/ModelsusingExplainPlanandVisualizationPlan
IdentifythelongrunningqueriesbyreviewingPerformancetabtoanalyzesystemperformancelocatedunderthe
Administrationeditor
HanaAutomaticallyhandlesIndexesonkeycolumns.Createsecondaryindexonnonkeycolumnsifitis
absolutelynecessary.Createindexesonnonprimarykeycolumns(withhighcardinality)toenhancethe

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

6/14

4/14/2016

HANAModelingGoodPractices.|SCN

performanceofsomequeriesusingtheindexadviser.
Syntax:CREATEINDEX<name>ON<table>.<column>
Usetheindexadvisertofindoutforwhichtablesandcolumnsindexingwouldbemostvaluable.The
indexAdvisor.pyscriptispartofaSAPHANAsysteminstallationandrunsfromthecommandline.Itislocatedin
the$DIR_INSTANCE/exe/python_supportdirectory.
Indexingtheprimarykeycolumnsisusuallysufficientbecausequeriestypicallyputfilterconditionsonprimary
keycolumns.Whenfilterconditionsareonnonkeyfieldsandtableshavemanyrecords,creatinganindexon
thenonprimarykeycolumnsmayimprovetheperformance.
Thereisatradeoffbetweenindexingandmemoryconsumption:Whileindexingnonprimarykeycolumnscan
makequeryexecutionfaster,thedownsideisthatmemoryconsumptionincreases.Theindexadvisertakesthis
tradeoffintoaccount:Indynamicmode,theindexadviserlooksforthetablesandcolumnsthatareusedmost
often.Thehighertheselectivityis,thatis,themoredifferentvaluesareinthecolumn,thehigherarethe
performancegainsfromindexingthecolumns.
Tocheckwhetherthereisanindexforacolumn,youcanseethesystemviewM_INDEXES.
WithSAPHANA,youdonotneedtoperformanytuningtoachievehighperformance.Ingeneral,theSAPHANA
defaultsettingsshouldbesufficientinalmostanyapplicationscenario.Anymodificationstothepredefined
systemparametersshouldonlybedoneafterreceivingexplicitinstructionfromSAPSupport.

Iftwocolumnsarefrequentlycomparedbyqueries,ensurethetwocolumnshavethesamedatatype.
Forcolumnsofdifferenttypes,SAPHANAusesimplicittypecastingtoenablecomparisoninHANA
Models.However,implicittypecastinghasanegativeeffectonperformance.

7.)MIGRATION:
IfyouwanttotransporttheHANAcontentasyouareusedtodofortheABAPlandscapeandhase.g.processtoolsin
topofthesystemtransportlandscape,thentherecommendedapproachwouldbetouseCTS+.
iftheHANAlandscapeiscompletelyindependentandtherearenorequirementsconcerningprocessintegrationor
couplingofotherapplicationartifacts,thenyoucanusetheHANAonlytransporttoolthatispartofHANALifecycle
Management(knownasHANAApplicationLifecycleManager),whichisaHANAonlytool.
Currentlythelimitationinbothscenariosis,thatyouhavetotransportthecompleteDeliveryUnit(DU)andcannot
transportsmallergranularities.
SAPHANALifecycleManager:
TheSAPHANAlifecyclemanager(HLM)isatoolthatenablesflexiblecustomizationsofanexistingSAPHANA
system.TherearethreeavailableworkingmodesfortheSAPHANAlifecyclemanager:

1.UsingSAPHANAstudio
2.Usingthecommandline
3.Usingastandalonebrowser

UsingSAPHANALifecycleManagerthroughSAPHANAStudio:
Keepinmindthat,toworkwiththeHLM,youneedtomakecertainconfigurationsettingsfortheSAPHANAstudio.
Therearealsocertainbrowserrestrictions.Formoreinformation,see
http://help.sap.com/hana/SAP_HANA_Update_and_Configuration_Guide_en.pdf
KeepinmindthatLifecycleManagementperspectiveintheSAPHANAstudiorequiresversionofJavaVirtual
Machineequalorhigherto1.6.0_12.

UsingSAPHANALifecycleManagerthroughStandaloneBrowser:

Makesureyoureviewthefollowingbrowserrequirements:
ForMicrosoftWindows,youneedInternetExplorerversion9orabove.IfyouarerunningInternetExplorer
version9,makesurethatyourbrowserisnotrunningincompatibilitymodewithyourSAPHANAhost.Youcan
checkthisinyourbrowserbychoosingTools>CompatibilityViewsettings.

ForLinux,youneedXULRunner1.9.2orabove.WerecommendthatyouinstallXULRunner1.9.2(ornewer)
separately,butifyouhavealreadyinstalledFirefox3.6(ornewer),itcontainsXULRunner1.9.2.

Tousethetoolfromastandalonebrowser,callthefollowingURL:https://<host>:1129/lmsl/HLM/<SID>/ui/?sid=
<SID>.

MakesureyouusethefullyqualifiednameoftheSAPHANAsystem,suchasmyhost.sap.com(not
justmyhost).

8.)COMMONERRORS
Error:Cannotcreatecolumnindex"duringactivation.
Thisissueoccurswhenyoutrytoredeploy/reactiveamodelafteryoumademinorchanges(orimporteda
modelfromanothersystem).
DeletetheentryfromtheRUNTIME_OBJECTStableandactivateagain
DELETEfrom"_SYS_REPO"."RUNTIME_OBJECTS"whereOBJECT_NAMELIKE
'%CA_MY_CALC_VIEW'
You'llseethisissue,ifyoutrytoactivateamodelwhilemassivedataloadtounderlyingtableisin
progress,whichlocksthetableforsignificantamountoftime(say1030minormore).
However,thismaynotbeanissuewithtypicalSLTreplication(notfirsttimeload).TypicalSLTloadsonly

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

7/14

4/14/2016

HANAModelingGoodPractices.|SCN
locksthetablesforfewseconds,SoSLTloadmayslowdowntheactivation.Butitdoesnoterroroutthe
activation.

Error:SAPDBTechJDBC:[2048]:columnstoreerror:<?xmlversion="1.0"encoding="utf8"?><createCubeResult
version="1.0"><status><message>Indexnameconflictswithexistingindexname</message>
<errorCode>2019</errorCode></status><details><warnings><detail><element>cubeSchema</element>
<code>46</code><message>Defaultlanguagenotset.Use'en'</message></detail></warnings></details>
</createCubeResult>

AsSystemUser:
dropcalculationscenario"_SYS_BIC"."pkg/view"Ex:dropcalculationscenario_SYS_BIC"."ms/FACT_WM_AV"

Error:Couldnotexecute'selectyear,count(*)FROM"_SYS_BIC"."ms/FACT_SHIPPING_AV"groupbyyear'
SAPDBTechJDBC:[2048](at28):columnstoreerror:searchtableerror:[2712]Errorexecutingphysicalplan:olap:
mergingmultivaluedictsisnotimplementedBwPopJoin2Inwardspop17(MODELER:VTTPen.TKNUMto.VBELN),in
executor::Executorincube:_SYS_BIC:ms/FACT_SHIPPING_AV

UPDATE"schema"."table"mergedeltaindexEx:UPDATE"SAP_MODELER"."VBAK"mergedeltaindex

Error:InternaldeploymentofobjectfailedRepository:EncounteredanerrorinrepositoryruntimeextensionInternal
Error:CreateScenario:failedaCalcEngine.createScenario():Thefollowingerrorsoccured:Anindexalreadyexists
withthesamename(2003)nnprintingXML<?xmlversion="1.0"encoding="UTF8"standalone="no"?><cubeSchema
defaultLanguage="EN"defaultSchema="_SYS_BIC""select*fromsys.m_ce_calcscenarios
dropcalculationscenario""_SYS_BIC"".""emc.sd/CV_BACKLOG_UPD2""cascade

Ifyouarenotabletoopenanyoftheviews:
CouldbeSTUDIOVersionproblem.UpgradeStudio
NotabletoopenanyANVIEW:
UnderlyingKeyColumnsinjoinsarechanged.OpenXmlfileandmapcorrectkeys.
TroubleDeletingPackage:

Checkin_SYS_BI
select*from"_SYS_BI"."BIMC_ALL_CUBES"wherecube_name='FACT_WM_AV'
select*from"_SYS_BI"."BIMC_DIMENSIONS"whereCOLUMN_OBJECT='"_SYS_BIC"."ms/FACT_WM_AV"'
select*from"_SYS_BI"."BIMC_DIMENSIONS"
FROM_SYS_REPO
select*from"_SYS_REPO"."ACTIVE_OBJECT"whereObject_name='FACT_WM_AV'
select*from"_SYS_REPO"."PACKAGE_CATALOG"wherePACKAGE_ID=ms
select*from"_SYS_REPO"."INACTIVE_OBJECT"whereObject_name='FACT_WM_AV'

Someotherissuessolutioncanbefoundinfollowingdoc.
http://scn.sap.com/docs/DOC50291

9.)BestPracticestoBuildBusinessObjectsUniverseagainstHANAModels.
UniversesshouldalwayscreateagainstHANADatabaseinformationModels.
BusinesslogicneedtobepushedtoHANAmodelstogetmaximizingthequeryperformanceandalsoitis
presentationlayeragnostic.EveryreportingtoolisabletoconsumeHANAmodelsasis.ForExampleWebi,
Explorer,Lumira,AOffice,XSengine,HTML5appsandother3rdpartyreportingtools.

10.)SomeUsefulLinks:
YTD,MTDothercalculationsbasedonrelativedates
http://scn.sap.com/docs/DOC50420
HandlingSCDswithSLT
http://scn.sap.com/docs/DOC45991
HanaDBInstall:
http://scn.sap.com/docs/DOC31036
RowtoColumn&ColumntoRowTransformationinModeling.
http://scn.sap.com/docs/DOC51791
http://scn.sap.com/docs/DOC50541
HowTo:DynamicTranspositioninHANA

Conclusion:
Thanksforreadingthisblog.WewillcontinuouslyupdatethisBlogwithnewupdates.Weappreciateyourfeedbackto
improvethisblog.

DISCLAIMER:USETHISDOCUMENTATYOUROWNRISK.

65192Views

Products:sap_hana

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

8/14

4/14/2016

HANAModelingGoodPractices.|SCN

AverageUserRating
(26ratings)

Share

34

Tweet

Like

40Comments
AbaniPattanayakMar26,20144:36PM

Thanks

ShivajiPatnaikforputtingthistogether.
Like(1)

PanChengApr1,201510:05PM(inresponsetoAbaniPattanayak)

Awesomejob.

Thanks,
Like(0)

SatyaPVVJul18,201410:06AM

Goodwork!!
Like(0)

S.MarieAug28,20145:58PM

Whatisyourmethodologytocopy/Moveviewsbetweenpackages?

Westartedwith,asadvised,aDEVpackagewith'developperssubpackage,butitseemsthenthat
dependanciesbetweenviewarereallydifficulttomanagewhenyouwanttocopyormoveyour
developmenttoyour'ProjectContent'package.

Infact,wefoundoutthatwehadtoredevelopmostofthingsinthetargetpackage,sothatrelation
betweenobjectscanbeestablishedinasustainablemaaner.

Howdidyouhandlethisissue?
Like(0)

AbaniPattanayakAug28,20146:55PM(inresponsetoS.Marie)

HiStephane,

Movingobjectsbetweenthepackageswillrespecttheassociateddependency.Howare
youmovingobjectsbetweenpackagesandsubpackages?

I'dsuggestyoutry(Selectaview).RightClick:REFACTOR==>MOVE
Like(1)

S.MarieAug29,20143:23PM(inresponsetoAbaniPattanayak)

...Andyouareright.

Iguesswehadproblemsduetoauthorizations,notduetotheprocessinitsel.

ThanksAbani.
Like(0)

ShivajiPatnaikAug29,20146:51PM(inresponsetoS.Marie)

Stephane,
WhatAbanisaidisright.Alsosometimesifyoubuildmodelsreferencingmultiplepackages
(orDBSchemanamesarediffinDev/QAorProd)thenmovewillstillreferencetothose
packages.IfyouwanttochangethesereferencesyouhavetoexportandchangeinXML.
WedidchangeinXMLinmultipleinstances..
Thanks
Shivaji
Like(1)

KishoreJhunjhunwalaSep30,20144:45PM

Thanksforthisamazingdocument.
Like(0)

FrankMischOct1,20141:34PM

Hi,
goodnewsthelimitationfortheHANAApplicationLifecylceManagement(HALM)"Currentlythe
limitationinbothscenariosis,thatyouhavetotransportthecompleteDeliveryUnit(DU)andcannot
transportsmallergranularities."isalreadygonefornativeHANAtransportinSAPHANA1.0SP8and

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

9/14

4/14/2016

HANAModelingGoodPractices.|SCN
willbegoneverysoonwithCTS,too.Withthoseversionsonelevelofchangelistsispossible.
Andalsoconcerningthemanagementofdeliveryunits,productsandpackagesyouwillfindfeatures
withinHALMtosupportforexampleaprojectlead,productresponsible,architectordeveloperto
modeltheapplication.

Moreinformationcanbefoundat:SAPHANAApplicationLifecycleManagement(HALM)|SAP
HANA

Kindregards,
Frank
Like(0)

RanjitPradhanDec2,201411:58PM

Fantasticworkbytheeliteteam.Thanksabunch.
Like(0)

RemyaRajDec4,20147:05AM

HiShivaji,

CouldyoupleaseconfirmthisCalculatedColumnsarecalculatedbeforeaggregation.

IfIdocalculatedcolumnonanaggregationnode,willitnotbecomputedafteraggregation?

Thanks,
Remya
Like(0)

ShivajiPatnaikJan13,20154:46PM(inresponsetoRemyaRaj)

Ramya,
Yes.CalculatedColumnsarecalculatedbeforeAggregation.Iguessthereisflagyoucan
setuptocalculateafteraggregation.

ThesecondpartofyourquestionifIunderstandcorrectlyIfyoudocreateacalculated
columninAggregationnode,itwillcomputedafterthataggregationnodeanditwillbe
visibleafterthatnodetoothernodes.

Thanks
Shivaji
Like(0)

AbaniPattanayakFeb18,20153:18PM(inresponsetoShivajiPatnaik)

Actuallycalculatedcolumnsarebydefault"afteraggregation".Youcanchangethe
behaviorbyusingtheflagtocalculate"afteraggregation"
Like(0)

HratchSofoianFeb27,20155:13PM

Thankyouforthegreatpost.

Howcanijoinmultiplecalculationviews(morethan10)inanewCVusinggraphicaloption?Using
unionandprojection?oranyotherbestpracticefromyourside?

appreciateyourfeedbackandtime
Like(0)

ShivajiPatnaikFeb27,20155:28PM(inresponsetoHratchSofoian)

BestoptionistouseUnion.Unionisfastestofalloptions.
Thanks
Shivaji
Like(0)

HratchSofoianFeb27,20155:30PM(inresponsetoShivajiPatnaik)

Thankyou.

Sowouldyourecommendtoaddthose10viewsinonesingleunionortrysome
kindof"nested"union?
Like(0)

ShivajiPatnaikFeb27,20155:45PM(inresponsetoHratchSofoian)

Sofoian,
InthepastIhaveadded8Views(combinationofCalc/AnalyticalViews)
inoneUnion(Itismassiveandmessybutworkedlikeacharm).
NestedunionsmightalsoworkbutIhavenottestedoneversustheother
.
Thanks
Shivaji
Like(1)

SteveSiewMar30,20155:53PM

GreatJobShivaji.Nicetoknowyouarestillatit.

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

10/14

4/14/2016

HANAModelingGoodPractices.|SCN

Like(0)

ShivendraSinghApr16,201512:00AM

Greatworkbytechieband...Veryusefulinformation
Like(0)

ShirishKarandikarJul21,20152:35PM

HelloGurus,

WaitingfortheHANAModelingGoodPracticesafterreleaseofSP09.

Regards,
Shirish.
Like(0)

ShivajiPatnaikJul24,20154:46PM(inresponsetoShirishKarandikar)

Shirish,
Thanksforreadingthisblog.Wewrotethisblogasgenericaspossibleandnotsubjectedto
anyoneversion.IamsuretheremaybenewfeaturesinfeaturerevisionsbuttheIdeaisto
gethangofitandproceedfurther.Thepurposeofthisblogistogiveenoughinformation
aboutModelingsoyoufeelcomfortablewithyourmodelingworkbutweexpectyoutopick
upnewfeaturesinnewrevisions.

Wewilladdnewfeatureswheneverwehavetime.

Thanks
Shivaji
Like(0)

NishS.Oct14,20153:25PM

HiShivaji,

IamlookingforroleplayingdimensionsinSAPHanaModeler.Forexample,IhaveoneDate
dimension,butmymodelrequiresaSalesDate,InvoiceDateandPurchaseDate.Typicallywecall
themroleplayingdimensionsinKimball,whereonephysicaldatetablecanbeusedandmultiple
aliastablescanbedefinedfordifferenttypesofdates.I'munabletofindsuchaliasfunctionalityin
SAPHanaModeler.Anyadvice?

Thanksinadvance.
Like(0)

ShivajiPatnaikOct14,20155:21PM(inresponsetoNishS.)

Manish,
YoucouldbealetocreatethreediffAttributeviewsonSametablewithdifferentNames.and
usetheseviewsinANorCalcViews.
Hopethishelps..
Thanks
Shivaji
Like(0)

NishS.Oct16,201510:01PM(inresponsetoShivajiPatnaik)

HiShivaji,
Thanksforyourreply.Ialsotriedsomethingdifferentanditappearslikeit's
working.InmyDataFoundationfortheview,IenteredanAliasName(under
Propertiesforthetable).Iwasthenabletodraginthesametableagain,andI
gaveitasecondaliasname.Thisway,Iwasabletocreateroleplaying
dimensionswithdifferentaliasnamesunderthesameattributeview.Iwasableto
activatetheview,howevergettingaprivilegeerrorwhenIpreviewData.Idont
thinkthaterrorhasanythingtodowithaliases.Justwantedtosharewithyou.
Like(0)

AshokBabuKumiliOct31,20158:28AM

Hi,
Veryusefulblog,Ihadagreatlearningfromtheblog .Detailsprovidedaresolutionorientedand
thanksfordetails(snotes&SCNdocs)addedatneededplaces.

I'mgivinga5Starratingtothecontent.Thankyou.
Like(0)

glenspaldingDec29,20155:44PM

hi,goodblog.
waswondering,ifyoushouldnowrecommendnottouseCEfunctionsanymore?
whatdoyouthink?
Like(0)

AbaniPattanayakJan3,201612:58AM(inresponsetoglenspalding)

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

11/14

4/14/2016

HANAModelingGoodPractices.|SCN
UsingofCEfunctionsarenolongerrecommended(atleaststartingfromHANASP09).
Like(0)

NaveenRamachandranFeb1,20164:33PM

Thanksalot

ShivajiPatnaik

VeryusefulGuidelinesinasinglepost.
Like(0)

TosanOmabuwaFeb11,201612:26AM

ReallyInformative,thanksShivaji.

WejustimplementedHANAandoneofthedebates(bothcontractorsandInhousefolks)weare
havingiswhentousestandardviewsandcustomviews,ItsoundselementaryIknow,sinceyou
havetodevelopyourHANAModelsbasedonuserrequirements.ButIwouldlovetoknowyourtake
onthissubjects.

Thanks
Like(0)

ShivajiPatnaikFeb11,20164:30PM(inresponsetoTosanOmabuwa)

Tosan,Gladtoknowthatyoulikedtheblog.WhenyouarereferringtostandardviewsI
believeyouhaveHANALIVEviewswhichareprebuildviews(CalcViews)comeswiththe
systemandCustomviews.YoucanonlydofewthingswithStandardviews.Butevery
customerisdifferentandtheirneedsaredifferent.Sometimesyoumightwanttobuild
customviewsontopofStandardviewstofulfillyourrequirementsOryoumightneedto
buildeverythingfromscratch.Iwouldsaydependsonrequirements.Hopethisanswers
yourquestion.ThanksShivaji
Like(0)

ShrikantGFeb13,20161:50AM

HiShivaji

Thankssomuchforthedetaileddocumentation.

OnethingIamnotunderstandingis.whatmethodologyweneedtousetocreatephysicaltablesin
HANA.WhatImeanis,asbestpracticedoweneedtocreatetablein3NFformorweneedtocreate
itasadimensionalmodelfactanddims.

Thanks
Shrikant
Like(0)

ShivajiPatnaikFeb24,20166:41PM(inresponsetoShrikantG)

Shrikant,

Youdon'thaveto.WhatImeanisyourapplicationstables(sitsascolumntablesinHANA)
forexampleifyouhaveECCtablesasinHANA(SidecarorECConHANA).

YouwillbuildviewsormodelsontoptoApplicationTables.ForExMaraandotherlookup
tablesIcancreateDimensionalView.AndanotherexampleforFactViewcoulduseone
SalesTableormultiplesalesheaderordetailedtablestobuildaFacttableandthenJoinon
DimensionalorAttributeviewsinaAnalyticalVieworCalcview.

Wedon'tneedtobuildDimensiontablesorfacttablesinHanaDatabasebutuseHana
modelstosimulatethatfunctionality.IknowOtherdatabasesusesthisapproachandyou
havetomaintainthesetableswithETL.ButwithHanayoucancompletelyeliminatetheETL
layerorbatchloadingandcanbuildModelsonapplicationtablesinrealtime.Thatisthe
powerofHANA.
HopeIansweryourquestion.

Thanks
Shivaji
Like(0)

ADNANABIDFeb24,20167:05PM

HiShivaji,
IfImaycontinuethisconversationandunderstandyourfirstsentence:"WhatImeanisyour
applicationstables(sitsascolumntablesinHANA)forexampleifyouhaveECCtablesasinHANA(
SidecarorECConHANA)"

WhyIaskedisbecauseweareusingHANAoncloudandusingSLTtogetourECCtablesreplicated
inHANA.WealsodoColumngenerationinoneofourdatamodelsaswewantedtoavoid
calculationinthehigheruplayer.Nowcolumngenerationdidn'tmattermuchinsidecarscenario
sincewewerenotaffectinganybaseECCtable.NowwehaveECConHANAandwearemovingall
ourHANAmodelsfromcloudtoonprem.WhenonpremifIcontinuetodocolumngenerationon
HANAsidethenthatwillaffecttheECCtables.Ismyassumptioncorrect?
Anybestpracticetoconsiderhere?AppreciateyourtimealwaysinansweringthisforumasIhave
learnedalotfromthisblog.
Thanks,
Adnan
Like(0)

ShivajiPatnaikFeb24,20167:15PM(inresponsetoADNANABID)

Adnan,

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

12/14

4/14/2016

HANAModelingGoodPractices.|SCN
Thatisgoodquestion.Ididn'tthinkaboutthatscenario.
LetstakeanExample,Ifaapplicationtablehave10columnsandyouhaveadded2
additionalcolumns.TheECCapplicationonlyneeds10columnsbutthe
Modeling/Reportingneeds12columns.Formelogicallyitshouldn'teffecttheECC
application.Butyouwillneverknow.

Ifyouhaveanenvironmenttotestthisscenario?Thisisonceyoudoyouwillknowkindof
thing.Pleasepostyourfindings.
Thanks
Shivaji
Like(0)

GiriSreerangamFeb26,20164:45PM(inresponsetoShivajiPatnaik)

AdnanandShivaji.

IamusingSLTtoreplicatedatafromECCtoHANADB.Wehavecreateda
calculationcolumnintheHANAview.Buttheperformanceisdegraded.

Hence,weareactuallytryingtopushthislogic(tocreateacalculationcolumn)
duringreplicationusingSLT.

Pleasesuggest,ifthisispossibleoranyalternativesolutionformyscenario.

Manythanksforprovidingyourthoughts

Regards
Giri
Like(0)

ShivajiPatnaikFeb26,20165:12PM(inresponsetoGiriSreerangam)

Giri,
YesThatispossible.Someleveloftransformationispossible.Wedid
someminortransformation.Notsureifitiscomplextransformation.

Thanks
Shivaji
Like(0)

GiriSreerangamFeb26,20165:31PM(inresponsetoShivajiPatnaik)

thankyouverymuchShivaji.Mylogicissimple.
CALC_A=CASEWHENCOL_A=AbcTHENCOLBELSE
NULL
CALC_B=CASEWHENCOL_A=BBBBTHENCOLBELSE

NULL

Iamnewtothisarea,couldyoupleasetellmewhereand
howexactlywecandothistransformaon?
ThanksAgain
Regards
Giri
Like(0)

ShivajiPatnaikMar1,20169:37PM(inresponsetoGiri
Sreerangam)

@tablelevelyoucancreateAutogeneratedcolumns
(Ihavementionedintheblog)andconverttheminto
charfieldsandusetheninyourmodeling.
Like(0)

MattHardingMar11,20163:34AM

HiAll,

I'mgladthatyou'veputastandardtogether,butIdohaveaquickquestionfromanonBIperson
comingfromadevelopmentperspectiveaboutpackagesandnamingofobjects.

Isthereanyreasonyoudon'tuseapackagetogroupitemsinsteadofhavingthenameincludethe
use?Also,isthereanyreasontousecapitalsasopposedtothemoreeasytoreadanduse
CamelCasefornamingofobjects?

e.g.Wheninthewebtools,ifIcreateacalculationviewforFinance,Iwouldthinkthismightlook
betterandbeeasiertofind/workwith:

<customer>.finance.[<sub_area>].cv::FactSales.calculaonview

NoteIbelieveEclipsemakesthingslookalittledifferent,soexcusemyignorance.

Cheers,
Matt
Like(0)

MattHardingMar11,20164:49AM(inresponsetoMattHarding)

Furthertothis,justfoundoutthatEclipse,bydefault,forcesyoutouseUpperCasebutreally
thiswasthereforbackwardscompatibility,andsinceSP6orsomething,youcanchangethe
preferencestoallowlowercase...

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

13/14

4/14/2016

HANAModelingGoodPractices.|SCN
Like(0)

SiteIndex
Privacy

ContactUs
TermsofUse

SAPHelpPortal
LegalDisclosure

Copyright

http://scn.sap.com/community/services/blog/2014/03/26/hanamodelinggoodpractices

FollowSCN

14/14

Vous aimerez peut-être aussi