Professional Documents
Culture Documents
BEx Analyzer
Virtual Data Models
o SAP HANA Live
Architecture of HANA Live
From a HANA Model to an OData Service
o Enable CDS View for Analytic Manager
Create Basic View
Create Cube View
o Preview Transient Info Provider
o Create BExQuery ( EQ )
o Include Query in BI Content Bundle (TBD)
o Generate OData Service
Activate Gateway Service
Include Service in Project Data Model
Use CDS Annotations for OData Service
o Create CDS View for Analytics Query
o Activate the Service
OData Client Call
BEx Analyzer
BEx Analyzer is an analytical, reporting and design tool embedded in Microsoft Excel. In
BEx Analyzer, you can analyze and plan with selected Info Provider data using the context
menu or drag and drop to navigate in queries created in BEx Query Designer. You can design
the interfaces for your queries by inserting design items (controls) such as analysis grids,
dropdown boxes and buttons into your Excel workbook. This allows you to transform your
workbook into a query application.
BICS means BI Consumer Services and is a SDK developed and used by SAP.
Interface(I)
Consumption(C)
Private(P)
See also:
SAP HANA Live (previously known as SHAF – SAP HANA Analytic Foundation) is
solution for real-time reporting on HANA. It is a separate package that comes with
predefined SAP HANA content across the SAP Business Suite.
SAP HANA Live provides SAP-delivered content (similar in concept like SAP BW content),
in form of SAP HANA calculation views for real-time operational reporting. The calculation
views spans across majority of ECC modules (FI, CO, MM, PP, SD, PS, CRM, GTS, AM
and GRC).
The content is represented as a VDM - virtual data model, which is based on the transactional
and master data tables of the SAP Business Suite.
Currently more than 2000 views are delivered in HANA Live Package.
HANA Live calculation views are designed on top of SAP Business Suite tables. These views
are optimized for best performance and analytic purposes. These views form a Virtual Data
Model (VDM) that customers and partners can reuse. Data provided by the virtual data model
can be presented through multi-purpose analytical UIs, such as SAP BusinessObjects BI
Suite UIs, and domain-specific web applications.
From a HANA Model to an OData Service
The data must be transferred through four different object layers:
Analytics Annotations enable the analytic manager for multidimensional data consumption,
performing data aggregation, and slicing and dicing data. BI frontends like Design Studio and
Analysis Office can consume the data via the analytic manager.
@Analytics.dataCategory:
VDM Annotations allow classifying views of the virtual data model in terms of their
admissible reuse options and provisioned content. VDM is intended to be interpreted by view
browsers and other functionality which is based on the virtual data model. This classification
is used only for SAP internal structuring and interpretation of the CDS views. Releasing CDS
views for customers and partners is controlled by additional internal classification of the
views.
@VDM.viewType:
@VDM.private:
true technical helper views which may only be used by their defining responsibles
Create two basic CDS views, set the views as VDM basic view type by @VDM.viewType:
#BASIC.
@AbapCatalog.sqlViewName: 'ZIMKT_DIGACC'
@VDM.viewType: #BASIC
@EndUserText.label: 'Contacts of Digital Account'
define view ZI_Mkt_DigAcc as select from cuand_da_root
association [0..*] to cuand_ce_mp_root as _MarketingPermission
on cuand_da_root.comm_cat_key = _MarketingPermission.comm_cat_key
{
@EndUserText.label: 'Digital Account'
key cuand_da_root.digacc_id as DigitalAccount,
@EndUserText.label: 'Communicate Category'
cuand_da_root.comm_cat_key as CommCatKey,
@EndUserText.label: 'Marketing Area'
cuand_da_root.mkt_area_id as MarketingArea,
@EndUserText.label: 'Contact'
_MarketingPermission.contact_key as Contact
}
@AbapCatalog.sqlViewName: 'ZIMKT_IA'
@VDM.viewType: #BASIC
@EndUserText.label: 'Interaction'
define view ZI_Mkt_Interaction as select from cuand_ce_ic_root
association [0..*] to cuand_ce_ia_rt as _interaction
on $projection.Contact = _interaction.contact_key
{
@EndUserText.label: 'Contact'
key cuand_ce_ic_root.db_key as Contact,
@EndUserText.label: 'Interaction'
_interaction.db_key as Interaction,
_interaction // Make association public
}
@AbapCatalog.sqlViewName: 'ZIMKT_DIGACC_C'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@Analytics.dataCategory: #CUBE
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Cube for Contacts of Digital Account'
define view ZI_Mkt_DigAcc_C as select from ZI_Mkt_DigAcc as digitalAccount
association [1] to ZI_Mkt_Interaction as _interaction
on $projection.Contact = _interaction.Contact
{
key digitalAccount.DigitalAccount,
key digitalAccount.MarketingArea,
@EndUserText.label: 'Contact'
key digitalAccount.Contact,
@EndUserText.label: 'Interactions'
@DefaultAggregation: #SUM
count( distinct _interaction.Interaction ) as Interactions,
_interaction // Make association public
}
group by
digitalAccount.DigitalAccount,
digitalAccount.MarketingArea,
digitalAccount.Contact
The cube view will be published as a transient provider for the analytic manager.
Goto->Standard Query
Start Query Designer to create a new query with a special type, named EasyQuery (EQ).
Create BExQuery ( EQ )
The BEx query will not be activated automatically in test or customer landscapes. The
content that shall be activated in test or customer system needs to be included in a BI content
bundle. These bundles have to be activated manually in test systems after transport of the
query. They will be activated in customer systems automatically when running the technical
configuration. To include a query to a BI content bundle, call transaction
BSANLY_BI_ACTIVATION in the development system. Choose a proper bundle and edit
it. Add the query below. To do that, choose object type = Query element, Object Technical
Name = Query Enterprise ID (obtained from extended properties in Query Designer),
Grouping = Only neccessary Objects). Save. Press Check Consitency, The query description
should apear.
Generate OData Service
Start transaction SEGW, open a project (or create a new one). Under “Data Model” choose
include or redefine “OData Service (SAP GW)”. Click next, set Technical Service Name.
Click on next and Finish the wizard.
The fieldnames in the generated service look like GUIDs. in order to expose the service with
nicer field names (e.g. for consumption in Lumira), beautifaction of the fieldnames can be
done. In a next step you can redefine the attribute names of the entity to give thema a
speaking name. Select the attribute in your entity type, press redefine and type a new property
name:
Generate the service and select option Overwrite Base/Extended Service.
Save the service. The usual steps for OData services apply: Activation, transport, PFCG role
assignment, including in TC is like for the standard OData services.
Queries may not be changed in an incompatible way. Thay means, existing fields from
already delivered queries may not be deleted.
Fields from delivered OData services my not be removed or renamed, as this would also be
an imcompatible change
May be get an error from accessing the OData service when you includes the gateway service
in exist gateway project, then you can click the button ‘Load Metadata’ in transaction
/IWFND/MAINT_SERVICE to refresh the metadata of the OData service.
Create a CDS View used for Analytics Query by annotation @Analytics.query: true,
which select data from Cube CDS view. And add annotation @OData.publish: true onto
the view to publish it to an OData service.
@AbapCatalog.sqlViewName: 'ZMKT_DIGACC_Q'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Query view of Digital Account'
@VDM.viewType: #CONSUMPTION
@Analytics.query: true
@OData.publish: true
define view ZC_Mkt_DigAcc_Q as select from ZI_Mkt_DigAcc_C
{
ZI_Mkt_DigAcc_C.DigitalAccount,
ZI_Mkt_DigAcc_C.MarketingArea,
ZI_Mkt_DigAcc_C.Contact,
ZI_Mkt_DigAcc_C.Interactions
}
/sap/opu/odata/SAP/ZC_MKT_DIGACC_Q_CDS/ZC_MKT_DIGACC_Q
$filter=dimension1 eq 'value1'
$select=dimension1,dimension2,figure1,figure2
e.g.
https:///sap/opu/odata/sap/ZQ_DIGACC_CONTACTS_SRV