SAP BLOG Conversion SAP BW 7.x to SAP BW/4HANA: How to handle missing SAP Exit Variables

SAP Blog

Kayıtlı Üye
Katılım
22 Ara 2017
Mesajlar
1,925
Tepki puanı
7
Puanları
6
This technical blog post is for BW consultants who are involved in SAP BW 7.x to SAP BW/4HANA conversion projects.

During a SAP BW/4HANA conversion project the existing content artifacts will be automatically replaced by the new, future-proofed and HANA-optimized objects such as advanced DataStore objects, CompositeProvider and Open ODS views. Before this is done, following the SAP BW/4HANA conversion guide, a code scan report is executed to detect issues if any standard function modules or programs are used in the data model e.g. by BW Transformations or Exit Variables, that are obsolete and not longer available in SAP BW/4HANA.

How to handle these kind of issues, where obsolete standard function modules and programs are used inside your data model, is generally addressed in SAP Note 2673734.

In this blog post let us focus on problems related to missing function modules called by SAP Exit Variables.

Why are some SAP Exit Variables and their function modules not longer available in BW/4HANA?

In SAP BW and the corresponding BI Content add-ons, there were a very high number of standard SAP Exit variables available. Some of these SAP Exit variables had similiar logic as others, e.g. there were five variables providing the last month. At the same time the variables in the classic BI Content for SAP BW did not follow a clear naming convention. This made it hard to find the right variable for a particular reporting use case and many projects ended up creating their own SAP Exit Variables.

With the new standard content for SAP BW/4HANA a new streamlined set of variables following clear naming conventions is introduced to make it easier for content modelers to find the right variable. A full list of the new variables including the definition of the used naming conventions can be found as attachment in SAP Note 2395579.

Variables_naming_conventions.png


Naming Conventions for Variables – BW/4HANA Standard Content​

What can I do when the function module of a currently used SAP Exit Variable is not longer available in SAP BW/4HANA?

While the new set of variables following a consistent naming convention is helpful for greenfield implementation projects, this certainly comes as a one-time hurdle when doing a conversion project.

To ease the conversion, the new BW/4HANA Content SAP Exit Variables with their function modules have been downported to SAP BW 7.31 / 7.40 / 7.50 and SAP BI Content 737 / 747 / 757 by the SAP Notes

  • 2851061 – New BEx variables for simplification of conversion to SAP BW/4HANA
  • 2857063 – BI_CONT: New BEx Variables to simplify conversion from SAP BW to SAP BW/4HANA

By implementing the SAP Notes, these SAP Exit Variables are available in your SAP BW 7.x system and all you need to do – prior to the conversion – is to replace the previous used BI_CONT SAP Exit Variables by the new variables in the queries.

The list below shows all downported SAP Exit variables. With assistance of this table, you can lookup for a currently used variable that needs to be replaced (column ‘Replaced Variable’) the functional equivalent variable (column ‘Variable (new)‘). To make things more complicated, there are some SAP Exit Variables that dependent on other SAP Exit Variables. As an example the SAP Exit variable ‘Current Fiscal Year Period’ itself reads the SAP Exit variable ‘Fiscal Year Variant’. These kind of dependencies you need to take into account when replacing the SAP Exit variables. To assist you with that, all dependencies are properly documented in the column ‘Comment’ and in the detailed footnotes below.

Replaced VariableVariable (new)DescriptionComment InfoObject
0CD_L14D0CEIO_CDL14CDCYLast 14 Days0CALDAY
0CD_L7D0CEIO_CDL7CDCYLast 7 Days0CALDAY
0CD_LD0CEPO_CDPDCYLast Day0CALDAY
0CDFY0CXIM_CDFYCYCurrent Fiscal Year0CALDAY
0CDLFY0CXIM_CDFYPYLast Fiscal Year0CALDAY
0CMCMLY0CXPO_CMCMPYCurrent Month (Comparison) Previous Year0CALMONTH
0CMCQUAR0CXIO_CMCQCYCurrent Quarter0CALMONTH
0CMCQULY0CXIO_CMCQPYCurrent Quarter (Comparison) Previous Year0CALMONTH
0CML12CM0CXIO_CML12CMCYLast 12 Months Including Current Month0CALMONTH
0CML12LM0CXIO_CML12PMCYLast 12 Months Excluding Current Month0CALMONTH
0CML3CM0CEIO_CML3CMCYLast 3 Months Including Current Month0CALMONTH
0CMLMLY0CXPO_CMPMPYLast Month (Comparison) Previous Year0CALMONTH
0CMLMON0CEPO_CMPMCYLast Month0CALMONTH
0DPM_BV00FIPO_GRID_WIDTHGrid Width0GRID_WIDTH
0F_LASTDTCD_IFPER0CXSM_LASTCLDTVClearing Dt.(Derive last CalDay using Var. 0CIIN_FISCPER)(6)0CLEAR_DATE
0F_LASTDTCD_IFPER20CXSM_LASTCLDTV_CMPClearing Dt.(Derive last CalDay by 0CIIN _FISCPER_CMP)(7)0CLEAR_DATE
0F_LASTDTND_IFPER0CXPM_LASTNDDTVNet Due Dt.(Derive last CalDay using Var. 0CIIN_FISCPER)(6)0NETDUEDATE
0F_LASTDTND_IFPER20CXPM_LASTNDDTV_CMPNet Due Dt.(Derive last CalDay by 0CIIN _FISCPER_CMP)(7)0NETDUEDATE
0F_LASTDTPD_IFPER0CXPM_LASTPDDTVPosting Dt.(Derive last CalDay using Var. 0CIIN_FISCPER)(6)0PSTNG_DATE
0F_LASTDTPD_IFPER20CXPM_LASTPDDTV_CMPPosting Dt.(Derive last CalDay by 0CIIN_ FISCPER_CMP)(7)0PSTNG_DATE
0I_BA1040CXIO_FPYTCPVCYCumulated Up To Period (Var. 0CIPM_FISCPER)(1)0FISCPER
0I_BA1060CXIO_FPYTCPVPYCumulated Up To Prior FY Period (Var. 0CIPM_FISCPER)(1)0FISCPER
0I_CUFQU0CXIO_FPCQCYCurrent Quarter of Fiscal Year0FISCPER
0I_CUFYE0CXIO_FPALLPCYAll Periods of Current Fiscal Year0FISCPER
0I_FPER0CIIN_FISCPERFiscal Year/Period0FISCPER
0I_FPER20CIIN_FISCPER_CMPComparison Fiscal Year/Period0FISCPER
0I_L6MON0CEIO_CML6CMCYLast 6 Month Including Current Month0CALMONTH
0I_PRFQU0CXIO_FPPQCYPrevious Quarter of Fiscal Year0FISCPER
0I_PRFYE0CXIO_FPALLPPYAll Periods of Previous Fiscal Year0FISCPER
0LQUART0CXIO_CMPQCYLast Quarter0CALMONTH
0P_AUGDT0CXPM_DATE_KEY_CLEARKey Date for Clearing Date(3)0DATE
0P_BA1010CXPO_FPCPVPYPrevious Year Period (Var. 0CIPM_FISCPER)0FISCPER
0P_CHAEX0CXPM_CHRT_ACCTSDetermine Chart of accounts0CHRT_ACCTS
0P_CSDT20CIPM_DATE_KEY_CMPKey Date for Comparison0DATE
0P_DATE_OPEN0CEPM_DATE_OPENOpen on Key Date / Default System date0DATE
0P_FI_DOCSTAT_OPEN0CIPO_FI_DOCSTAT_NIItem Status Open (No Input)0FI_DOCSTAT
0P_FPER0CIPM_FISCPERFiscal Year/Period0FISCPER
0P_FVANT0CXPN_FISCVARNTFiscal year variant0FISCVARNT
0P_KEYDT0CEPM_NETDUEDATEKey Date for Due Date Analysis0NETDUEDATE
0P_SIMD10CIPM_UC_SIM_ID1Simulation ID 10UC_SIM_ID1
0S_1ST_QUART0CXPO_CQQ1CYFirst Quarter of Current Year0CALQUARTER
0S_CLEAR_DATE0CXSO_CLEAR_DATEClearing Date(4)0CLEAR_DATE
0S_FC_ERDA0CESO_ERDATCreation Date0ERDAT
0S_FI_DOCSTAT0CISO_FI_DOCSTATItem Status0FI_DOCSTAT
0S_FI_DOCSTAT10CISO_FI_DOCSTAT_NIItem Status Cleared/Open (No Input)0FI_DOCSTAT
0S_GL_CLRSTAT0CISO_GL_CLRSTATClearing Status0GL_CLRSTAT
0S_NETDUEDATE_L00CXIO_NETDUEDATE_G0Due Date Grid 0(8)0NETDUEDATE
0S_NETDUEDATE_L10CXIO_NETDUEDATE_G1Due Date Grid 1(8)0NETDUEDATE
0S_NETDUEDATE_L20CXIO_NETDUEDATE_G2Due Date Grid 2(8)0NETDUEDATE
0S_NETDUEDATE_L30CXIO_NETDUEDATE_G3Due Date Grid 3(8)0NETDUEDATE
0S_NETDUEDATE_L40CXIO_NETDUEDATE_G4Due Date Grid 4(8)0NETDUEDATE
0S_NETDUEDATE_L50CXIO_NETDUEDATE_G5Due Date Grid 5(8)0NETDUEDATE
0S_PSTNG_DATE0CXSO_PSTNG_DATEPosting Date(5)0PSTNG_DATE
0S_SIMR10CXSO_INVDAT_SIM1Invoice Data <= Simulation Run 1(2)0INVOICEDAT
0T_FIBUCKET00TXPO_FIBUCKET0Due Date Grid 0 – Text(9)1TEXT
0T_FIBUCKET10TXPO_FIBUCKET1Due Date Grid 1 – Text(9)1TEXT
0T_FIBUCKET20TXPO_FIBUCKET2Due Date Grid 2 – Text(9)1TEXT
0T_FIBUCKET30TXPO_FIBUCKET3Due Date Grid 3 – Text(9)1TEXT
0T_FIBUCKET40TXPO_FIBUCKET4Due Date Grid 4 – Text(9)1TEXT
0T_FIBUCKET50TXPO_FIBUCKET5Due Date Grid 5 – Text(9)1TEXT
none (new)0CXIO_CDCMCYCurrent Month0CALDAY
none (new)0CXIO_CDCQCYCurrent Quarter0CALDAY
none (new)0CEIO_CDN365CDNext 365 Days0CALDAY
none (new)0CXIO_CMPQPYLast Quarter (Comparison) Previous Year0CALMONTH
none (new)0CXPO_CQCQPYCurrent Quarter of Previous Year0CALQUARTER
none (new)0CXPO_FYPYPrevious Fiscal Year0FISCYEAR

(The table above can be also found in SAP Note 2857063)

(1): 0CXIO_FPYTCPVCY, 0CXIO_FPYTCPVPY

The new SAP Exit Variables read selection values from variable 0CIPM_FISCPER. The functional equivalent BI_CONT classic variables 0I_BA104 and 0I_BA106 read values from variable 0P_FPER.​

Therefore, if you replace 0I_BA104 by 0CXIO_FPYTCPVCY or 0I_BA106 by 0CXIO_FPYTCPVPY in a BEx Query, you will need also to replace variable 0P_FPER by 0CIPM_FISCPER.​

(2): 0CXSO_INVDAT_SIM1

The new SAP Exit Variable reads selection values from variable 0CIPM_UC_SIM_ID1. The functional equivalent BI_CONT classic variable 0S_SIMR1 reads values from variable 0P_SIMD1.​

Therefore, if you replace 0S_SIMR1 by 0CXSO_INVDAT_SIM1 in a BEx Query, you will need also to replace variable 0P_SIMD1 by 0CIPM_UC_SIM_ID1.​

(3): 0CXPM_DATE_KEY_CLEAR

The new SAP Exit Variable reads selection values from variable 0CIPM_DATE_KEY_CMP. The functional equivalent BI_CONT classic variable 0P_AUGDT reads values from variable 0P_CSDT2.​

Therefore, if you replace 0P_AUGDT by 0CXPM_DATE_KEY_CLEAR in a BEx Query, you will need also to replace variable 0P_CSDT2 by 0CIPM_DATE_KEY_CMP.​

(4): 0CXSO_CLEAR_DATE

The new SAP Exit Variable read selection values from variables 0CISO_GL_CLRSTAT, 0CISO_FI_DOCSTAT, 0CISO_FI_DOCSTAT_NI, 0CEPM_DATE_OPEN. The functional equivalent BI_CONT classic variable 0S_CLEAR_DATE reads values from variables 0S_GL_CLRSTAT, 0S_FI_DOCSTAT, 0S_FI_DOCSTAT1, 0P_DATE_OPEN.​

Therefore, if you replace 0S_CLEAR_DATE by 0CXSO_CLEAR_DATE in a BEx Query, you will need also to replace the four variables 0S_GL_CLRSTAT, 0S_FI_DOCSTAT, 0S_FI_DOCSTAT1 and 0P_DATE_OPEN by 0CISO_GL_CLRSTAT, 0CISO_FI_DOCSTAT, 0CISO_FI_DOCSTAT_NI and 0CEPM_DATE_OPEN.​

(5): 0CXSO_PSTNG_DATE

The new SAP Exit Variable read selection values from variables 0CISO_GL_CLRSTAT, 0CISO_FI_DOCSTAT, 0CISO_FI_DOCSTAT_NI, 0CIPO_FI_DOCSTAT_NI 0CEPM_DATE_OPEN. The functional equivalent BI_CONT classic variable 0S_PSTNG_DATE reads values from variables 0S_GL_CLRSTAT, 0S_FI_DOCSTAT, 0P_FI_DOCSTAT_OPEN, 0S_FI_DOCSTAT1, 0P_DATE_OPEN.​

Therefore, if you replace 0S_PSTNG_DATE by 0CXSO_PSTNG_DATE in a BEx Query, you will need also to replace the five variables 0S_GL_CLRSTAT, 0S_FI_DOCSTAT, 0P_FI_DOCSTAT_OPEN, 0S_FI_DOCSTAT1 and 0P_DATE_OPEN by 0CISO_GL_CLRSTAT, 0CISO_FI_DOCSTAT, 0CISO_FI_DOCSTAT_NI, 0CIPO_FI_DOCSTAT_NI and 0CEPM_DATE_OPEN.​

(6): 0CXPM_LASTNDDTV, 0CXPM_LASTPDDTV, 0CXSM_LASTCLDTV

These new SAP Exit Variables read selection values from variables 0CIIN_FISCPER and 0CXPN_FISCVARNT. The functional equivalent BI_CONT classic variables 0F_LASTDTND_IFPER, 0F_LASTDTPD_IFPER and 0F_LASTDTCD_IFPER read values from 0I_FPER and 0P_FVANT.

Therefore, if you replace 0F_LASTDTND_IFPER by 0CXPM_LASTNDDTV, 0F_LASTDTPD_IFPER by 0CXPM_LASTPDDTV and/or 0F_LASTDTCD_IFPER by 0CXSM_LASTCLDTV in a BEx Query, you will need also to replace the two variables 0I_FPER and 0P_FVANT by 0CIIN_FISCPER and 0CXPN_FISCVARNT.​

Note: The used variable for fiscal variant 0CXPN_FISCVARNT (new) is defined now as a SAP Exit variable whereas 0P_FVANT (classic BI Content variable) is defined as an user input variable.​

(7): 0CXPM_LASTNDDTV_CMP, 0CXPM_LASTPDDTV_CMP, 0CXSM_LASTCLDTV_CMP

These new SAP Exit Variables read selection values from variables 0CIIN_FISCPER_CMP and 0CXPN_FISCVARNT. The functional equivalent BI_CONT classic variables 0F_LASTDTND_IFPER, 0F_LASTDTPD_IFPER and 0F_LASTDTCD_IFPER read values from 0I_FPER2 and 0P_FVANT.

Therefore, if you replace 0F_LASTDTND_IFPER2 by 0CXPM_LASTNDDTV_CMP, 0F_LASTDTPD_IFPER2 by 0CXPM_LASTPDDTV_CMP and/or 0F_LASTDTCD_IFPER2 by 0CXSM_LASTCLDTV_CMP in a BEx Query, you will need also to replace the two variables 0I_FPER and 0P_FVANT by 0CIIN_FISCPER_CMP and 0CXPN_FISCVARNT.​

Note: The used variable for fiscal variant 0CXPN_FISCVARNT (new) is defined now as a SAP Exit variable whereas 0P_FVANT (classic BI Content variable) is defined as an user input variable.​

(8): 0CXIO_NETDUEDATE_G0, 0CXIO_NETDUEDATE_G1, 0CXIO_NETDUEDATE_G2, 0CXIO_NETDUEDATE_G3, 0CXIO_NETDUEDATE_G4, 0CXIO_NETDUEDATE_G5

These new SAP Exit Variables read selection values from variables 0CEPM_DATE_OPEN and 0FIPO_GRID_WIDTH. The functional equivalent BI_CONT classic variables 0S_NETDUEDATE_L0, 0S_NETDUEDATE_L1, 0S_NETDUEDATE_L2, 0S_NETDUEDATE_L3, 0S_NETDUEDATE_L4 and 0S_NETDUEDATE_L5 read values from 0P_DATE_OPEN and 0DPM_BV0.​

Therefore, if you replace 0S_NETDUEDATE_L0 by 0CXIO_NETDUEDATE_G0, 0S_NETDUEDATE_L1 by 0CXIO_NETDUEDATE_G1, 0S_NETDUEDATE_L2 by 0CXIO_NETDUEDATE_G2, 0S_NETDUEDATE_L3 by 0CXIO_NETDUEDATE_G3, 0S_NETDUEDATE_L4 by 0CXIO_NETDUEDATE_G4 and/or 0S_NETDUEDATE_L5 by 0CXIO_NETDUEDATE_G5 in a BEx Query, you will need also to replace the two variables 0P_DATE_OPEN and 0DPM_BV0 by 0CEPM_DATE_OPEN and 0FIPO_GRID_WIDTH.​

(9): 0TXPO_FIBUCKET0, 0TXPO_FIBUCKET1, 0TXPO_FIBUCKET2, 0TXPO_FIBUCKET3, 0TXPO_FIBUCKET4, 0TXPO_FIBUCKET5

These new SAP Exit Text-Variables read selection values from variables 0CEPM_NETDUEDATE and 0FIPO_GRID_WIDTH. The functional equivalent BI_CONT classic variables 0T_FIBUCKET0, 0T_FIBUCKET1, 0T_FIBUCKET2, 0T_FIBUCKET3, 0T_FIBUCKET4 and 0T_FIBUCKET5 read values from 0P_KEYDT and 0DPM_BV0.

Therefore, if you replace 0T_FIBUCKET0 by 0TXPO_FIBUCKET0, 0T_FIBUCKET1 by 0TXPO_FIBUCKET1, 0T_FIBUCKET2 by 0TXPO_FIBUCKET2, 0T_FIBUCKET3 by 0TXPO_FIBUCKET3, 0T_FIBUCKET4 by 0TXPO_FIBUCKET4 and/or 0T_FIBUCKET5 by 0TXPO_FIBUCKET5 in a BEx Query, you will need also to replace the two variables 0P_KEYDT and 0DPM_BV0 by 0CEPM_NETDUEDATE and 0FIPO_GRID_WIDTH.​



I cannot find the SAP Exit Variable in the list, what can I do?

If your SAP Exit Variable is not included in the list, it is still possible that one of the standard variables can fulfill your requirement. For example you are looking for a SAP Exit Variable that computes the current quarter based on calendar quarter. Although there is not such SAP Exit variable provided by the standard, there is however a standard SAP Exit variable available that restricts the query to the current quarter based on calendar day (0CXIO_CDCQCY) and could be used instead.

For missing SAP Exit variables on time characteristics you may also want to consider Replacement Path variables from variables. With this functionality you can define own variables based on one of the new SAP Exit variables, with the flexibility to read for example only a subset of the computed variable value (can be used to derive e.g. month from a calendar day SAP-Exit Variable) and/or working with offsets (e.g. current calendar month -3).

No, there is no other SAP Exit Variable I can use and replacement path variables do not fill my gap. What can I do?

In this case the only option is as discussed in SAP Note 2673734:

“In general, we recommend in such case to copy the missing DDIC and/or ABAP objects to the customer namespace and to adjust the BW objects accordingly. This will then allow you to use the objects in SAP BW/4HANA or transfer them to compatible objects.”

Okumaya devam et...
 
Üst