s20 b4h Query+Hana+Exit+Var
s20 b4h Query+Hana+Exit+Var
Batch_2 Page 1
Migration - Paths to SAP BW/4HANA
Batch_2 Page 2
Describing Conversion Strategies and Tools
Lesson Objective This lesson describes the conversion paths that are available to implement SAP BW/4HANA.
Available Paths
In-place conversion
Greenfield
Batch_2 Page 3
Greenfield
(new System ID)
Accelerated Greenfield
(Shell Conversion)
Remote Conversion
(Brownfield)
Landscape
Transformation/Consolida
tion
Conversion Guide
Batch_2 Page 4
Conversion Guide
Batch_2 Page 5
SAP BW/4HANA
Readiness check
Batch_2 Page 6
SAP BW/4HANA
Readiness check
Batch_2 Page 7
Readiness check first
Batch_2 Page 8
Readiness check first
Then pre-checks (detailed
line-item level)
Batch_2 Page 9
Which path is right for
you
Batch_2 Page 10
Batch_2 Page 11
Introducing the In-Place Conversion Approach
Process of in-place
conversion
Batch_2 Page 12
BW Mode
Compatibility mode
B4H Mode
Batch_2 Page 13
Length of time in different
modes
Batch_2 Page 14
Transfer of InfoCubes to
Advanced DSO
Transfer of DSOs to
Advanced DSOs
Batch_2 Page 15
Executing the in-place
conversion
Summary
Batch_2 Page 16
Summary
Batch_2 Page 17
Batch_2 Page 18
Introducing the Remote Conversion and Shell Conversion Approaches
Batch_2 Page 19
Shell conversion Key
characteristics
Batch_2 Page 20
Batch_2 Page 21
Batch_2 Page 22
Assessment
Question
Batch_2 Page 23
Learning assessment - Answers
Batch_2 Page 24
BW Query Enhancement - Requirement
Sales Item Customer Exit (ABAP Layer, Can accept multiple values or ranges for a variable)
Sales Item
1. Take manual input from user for Fiscal period in a manual input variable.
This manual input variable must be auto populated with current fiscal period.
2. Get the fiscal period from the manual fiscal period variable and create a range (calculation)
Take the year and get the 1st period of the year (similar to YTD requirements) - This is the from value of the
interval.
Take the fiscal period entered in the manual fiscal period variable and treat this as To value of the interval.
Sales Header HANA Exit (AMDP based. HANA Layer and can only accept single value for a variable)
Sales Header
1. Get the calendar day input from user in a manual input variable.
This variable must be auto populated by current day -1.
1 variable
2. Take the manual input calday and create a range:
From: Start of the year.
To: till the manual input calday
2 variables
Batch_2 Page 25
HANA Exit Variables
HANA Exit variables can only process single values or multiple single values.
Therefore we need to use a range selection with two single value variables for from and to.
Methods:
1. if_rsroa_var_hana_exit~ get_properties
• Parameter C_IS_ACTIVE should have the value 'X'. This stipulates that this coding should be used to define the value of the variable
The system can contain no more than one BAdI implementation with the value 'X for the query/variable name combination.
• Parameter C_TS_VNAM_INDEX defines the allocation of variable values from the query to the I_VAR_VALUE_X parameters of
method if_rsroa_var_hana_exit~process.
The specification of row {VNAM_COUNTRY, 1} in parameter C_TS_VNAM_INDEX stipulates that the value of variable
VNAM_COUNTRY is assigned to parameter I_VAR_VALUE_1.
A maximum of 20 entries of this type can be made.
2. if_rsroa_var_hana_exit~ process
• Parameter c_value should specify the value of the variable.
If the variable represents multiple single values, they must be in a comma-separated format, for example 'DE' ,'AT'.
BRFplus Exit
Batch_2 Page 26
BRFplus Exit
Batch_2 Page 27
Code Blocks
PUBLIC SECTION.
INTERFACES if_badi_interface .
INTERFACES if_amdp_marker_hdb .
INTERFACES if_rsroa_var_hana_exit .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_BPC_CL_RSROA_HANA_EXIT->IF_RSROA_VAR_HANA_EXIT~GET_PROPERTIES
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_VNAM TYPE RSZVNAM
* | [--->] I_VARTYP TYPE RSZVARTYP
* | [--->] I_IOBJNM TYPE RSIOBJNM
* | [--->] I_INFOPROV TYPE RSINFOPROV
* | [--->] I_COMPID TYPE RSZCOMPID
* | [<-->] C_IS_ACTIVE TYPE RS_BOOL
* | [<-->] C_TS_VNAM_INDEX TYPE NT_TS_VNAM_INDEX
* +--------------------------------------------------------------------------------------</SIGNATURE>
Batch_2 Page 28
* | [--->] I_VAR_VALUE_20 TYPE RSCHAVL
* | [<-->] C_VALUE TYPE RSCHAVL
* C_IS_ACTIVE stipulates that this coding should be used to define the value of the variable
c_is_active := 'X';
IF :i_vnam = 'ZVAR_HE_S_CALDAY'
THEN
c_ts_vnam_index = SELECT 'ZVAR_HE_S_CALDAY' AS vnam, 1 as index from sys.dummy;
end if;
endmethod.
c_value:= '';
IF :i_vnam = 'ZVAR_HE_S_CALDAY'
THEN
c_value := to_dats(add_days( current_date, -1 ));
END IF;
IF :i_vnam = 'ZVAR_HE_S_CALDAY_FR'
THEN
c_value := left(:i_var_value_1,4) || lv_day || lv_mth;
END IF;
IF :i_vnam = 'ZVAR_HE_S_CALDAY_TO'
THEN
c_value := :i_var_value_1;
END IF;
ENDMETHOD.
ENDCLASS.
Batch_2 Page 29